Skip to content

Error Boundary

This content is not available in your language yet.

<PionneErrorBoundary> est un Error Boundary React qui :

  1. Capture les erreurs qui remontent depuis ses enfants.
  2. Envoie l’event à Pionne avec mechanism: { type: 'react', handled: true }.
  3. Affiche un fallback UI à la place du sous-arbre planté.
import { PionneErrorBoundary } from '@pionne/react-native';
import { View, Text } from 'react-native';
export default function App() {
return (
<PionneErrorBoundary fallback={<Text>Quelque chose a planté</Text>}>
<MainNavigator />
</PionneErrorBoundary>
);
}
PropTypeDescription
fallbackReactNode | (info) => ReactNodeUI affichée en cas d’erreur
tagsRecord<string, unknown>?Tags ajoutés à l’event
onError(err, info) => voidHook appelé après capture
<PionneErrorBoundary
tags={{ boundary: 'root' }}
fallback={({ error, reset }) => (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Erreur : {error.message}</Text>
<Button title="Réessayer" onPress={reset} />
</View>
)}
onError={(err) => console.log('Boundary triggered', err)}
>
<CheckoutFlow />
</PionneErrorBoundary>

reset() réinitialise l’état interne du boundary et tente un nouveau rendu des enfants.

Tu peux imbriquer plusieurs boundaries pour isoler les pannes :

<PionneErrorBoundary fallback={<RootFallback />} tags={{ boundary: 'root' }}>
<Header />
<PionneErrorBoundary fallback={<FeedFallback />} tags={{ boundary: 'feed' }}>
<Feed />
</PionneErrorBoundary>
<Footer />
</PionneErrorBoundary>

Si <Feed /> plante, le header et le footer continuent de fonctionner.

CasBoundaryAuto-capture
Render React (return <Bad/>)OuiNon
Effet useEffect asyncNonOui (Hermes)
Handler onPressNonOui (timer/global)
Erreur dans un timerNonOui