callstack / callstack/react-native-paper

Dialog.Actions spreads compact prop into Fragment in React Native 0.81 / React 19, causing error when dismissing Dialog

Abierto
#4,794 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
TypeScript
Estrellas
14.5k
Forks
2.2k
Merge medio
5 d 23 h
PR fusionados (30 d)
12

Descripción

### 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)

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Start by inspecting the Dialog.Actions implementation and how it processes child elements when a Dialog is dismissed. Reproduce the issue with React Native 0.81, React 19.1.0, and the fragment-wrapped Buttons described above. Done means dismissing the Dialog no longer logs the React.Fragment compact-prop error while preserving the two-button example.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
react-native, typescript
Área
mobile
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.