ionic-team / ionic-team/ionic-framework

Ionic Framework Lifecycle should wrap with vue ErrorHandler

Aperta
#30,374 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
triage
Lingua principale
TypeScript
Stelle
52.7k
Fork
13.3k
Merge medio
1g 15h
PR unite (30g)
51

Descrizione

## lifecycle should handle error

I diff the lifecycle hooks code between ionic and vue,
it is better to wrap hooks with `callWithAsyncErrorHandling` as vue do.

## no error handle

vue `onMounted` will hook `onErrorCaptured`, but `onIonViewWillEnter` not

```diff
- onIonViewWillEnter(async () => {
onMounted(async () => {
await init();
});
```

```log
common-class.ts:60 Uncaught (in promise) ApiResultError: Order has expired
at UseApiRouteFetcher.ts:107:15
at callHooks (ofetch.03887fc3.mjs:131:15)
at async $fetchRaw2 (ofetch.03887fc3.mjs:299:7)
at async $fetch2 (ofetch.03887fc3.mjs:316:15)
at async fetchTypedResult (typed-fetcher.ts:78:21)
at async ionicFetchResult (ionic-fetcher.ts:45:12)
at async init (prepay.vue?t=1745726446418:133:32)
at async prepay.vue?t=1745726446418:143:7
```

## ionic lifecycle.ts

https://github.com/ionic-team/ionic-framework/blob/c5c4d1d98973b5114f1e559526d54f5125aeafad/packages/vue/src/hooks/lifecycle.ts#L26-L31

## vue apiLifecycle.ts

https://github.com/vuejs/core/blob/6eb29d345aa73746207f80c89ee8b37ff7b949c9/packages/runtime-core/src/apiLifecycle.ts#L31-L45

```ts
const res = callWithAsyncErrorHandling(hook, target, type, args)
// ....
return res
```

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.