react-native@0.85.3 peerDependencies allow react@19.2.6 but embedded renderer requires exact 19.2.3
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C++
- Estrellas
- 127k
- Forks
- 25.3k
- Merge medio
- 1 d 23 h
- PR fusionados (30 d)
- 4
Descripción
Description
react-native@0.85.3 declares this peer dependency:
{
"react": "^19.2.3"
}
That allows package managers to install react@19.2.6, but the embedded React Native renderer in the same package appears to require react@19.2.3 exactly at runtime.
In Libraries/Renderer/implementations/ReactNativeRenderer-dev.js from react-native@0.85.3:
var isomorphicReactPackageVersion = React.version;
if ("19.2.3" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-native-renderer: 19.2.3\nLearn more: https://react.dev/warnings/version-mismatch")
);
The renderer internals also report:
version: "19.2.3",
rendererPackageName: "react-native-renderer",
reconcilerVersion: "19.2.3"
So the install-time contract says react@19.2.6 is acceptable, while the runtime contract rejects it.
Steps to reproduce
- Install
react-native@0.85.3. - Install
react@19.2.6andreact-dom@19.2.6. - Launch a React Native app.
Expected behavior
The package metadata should prevent installing a React version that the embedded renderer will reject at runtime, or tooling/docs should make this exact-version requirement explicit enough to catch before app launch.
For example, one of these would avoid the mismatch:
- narrow
react-native@0.85.3'speerDependencies.reactto the exact renderer-compatible version,19.2.3, or - add install/doctor guidance that
reactmust exactly match the embeddedreact-native-rendererversion, not just satisfy the semver peer range.
Actual behavior
react@19.2.6 satisfies ^19.2.3, but the app fails at runtime because the embedded react-native-renderer is 19.2.3.
Environment
Observed from package contents:
{
"reactNativeVersion": "0.85.3",
"reactPeer": "^19.2.3",
"rendererCheck": "19.2.3",
"rendererVersion": "19.2.3"
}
This came up in a pnpm monorepo where web packages resolve react@19.2.6 and an Expo/RN mobile app correctly needs react@19.2.3. The monorepo context made the mismatch more visible, but the underlying issue seems to be that the package metadata permits a React patch version that the renderer rejects.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Compara la dependencia peer de react en los metadatos del paquete con las comprobaciones exactas de versión en Libraries/Renderer/implementations/ReactNativeRenderer-dev.js. Reproduce la instalación con react@19.2.6 y determina si el contrato del paquete o las indicaciones deberían evitar la discrepancia en tiempo de ejecución; se considera terminado cuando las versiones de React compatibles se rechazan o se identifican claramente antes del lanzamiento de la aplicación.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- react-native
- Área
- mobile
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 55/100