react-native@0.85.3 peerDependencies allow react@19.2.6 but embedded renderer requires exact 19.2.3
Personne n'a encore pris cette issue.
- Langage dominant
- C++
- Étoiles
- 127k
- Forks
- 25.3k
- Merge moyen
- 1 j 23 h
- PR mergées (30 j)
- 4
Description
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.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Comparez la dépendance peer react dans les métadonnées du package avec les vérifications exactes de version dans Libraries/Renderer/implementations/ReactNativeRenderer-dev.js. Reproduisez l’installation avec react@19.2.6, puis déterminez si le contrat du package ou les indications devraient empêcher la divergence à l’exécution ; le travail est terminé lorsque les versions de React prises en charge sont rejetées ou clairement identifiées avant le lancement de l’application.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- react-native
- Domaine
- mobile
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 55/100