callstack / callstack/react-native-paper
Dialog.Actions spreads compact prop into Fragment in React Native 0.81 / React 19, causing error when dismissing Dialog
- Langage dominant
- TypeScript
- Étoiles
- 14.5k
- Forks
- 2.2k
- Merge moyen
- 5 j 23 h
- PR mergées (30 j)
- 12
Description
### Current behaviour
When dismissing a Dialog (via any method — Cancel button inside Dialog.Actions, swipe-back gesture, or tapping outside the dialog), React Native 0.81 (with React 19.1.0) throws the following console error:
Invalid prop `compact` supplied to `React.Fragment`.
React.Fragment can only have `key` and `children` props.
### Expected behaviour
Dismissing a Dialog should not cause console errors. Props like compact should not be passed to React.Fragment.
### How to reproduce?
1. Create a Dialog with Dialog.Actions containing two Buttons, e.g.:
`
Title
Message
<>
Cancel
OK
`
2. Open the dialog.
3. Dismiss the dialog by:
- Pressing the Cancel button
- Swiping back (Android)
- Tapping outside the dialog container
4. Observe the console error.
### Preview
Console error log on dismiss:
console.js:661 Invalid prop `compact` supplied to `React.Fragment`.
React.Fragment can only have `key` and `children` props.
### What have you tried so far?
- Replaced <>... with ... → fixes the issue.
- Verified no compact prop is explicitly passed from my code.
- Confirmed that error appears only after upgrading to React Native 0.81.0 (React 19.1.0).
- Tried using React.Fragment explicitly → same error.
- This suggests Dialog.Actions is injecting compact into children.
### Your Environment
| software | version
| --------------------- | -------
| ios | x
| android | 10
| react-native | 0.81.0
| react-native-paper | ^5.13.1
| node | 22.11.0
| npm or yarn | 1.22.22(yarn)
| expo sdk | Not using Expo(using rn-cli)
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par inspecter l’implémentation de Dialog.Actions et la manière dont elle traite les éléments enfants lorsqu’un Dialog est fermé. Reproduisez le problème avec React Native 0.81, React 19.1.0 et les Buttons enveloppés dans un fragment décrits ci-dessus. Le travail est terminé lorsque la fermeture du Dialog ne journalise plus l’erreur de propriété compacte de React.Fragment, tout en préservant l’exemple à deux boutons.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- react-native, typescript
- Domaine
- mobile
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100