Je développe actuellement une application avec React Native. La base était Ignite . En ce moment, très souvent lorsque je démarre l'application, j'obtiens un message d'erreur que je Je ne comprends pas. Peut-être que quelqu'un peut me dire ce qu'il dit ou comment résoudre le problème.
Trying to add a root view with an explicit id already set. React Native uses the id field to track react tags and will overwrite this field. If that is fine, explicitly overwrite the id field to View.NO_ID before calling addRootView.
addRootViewGroup
NativeViewHierarchyManager.Java:504
addRootView
NativeViewHierarchyManager.Java:496
addRootView
UIViewOperationQueue.Java:572
registerRootView
UIImplementation.Java:129
addRootView
UIManagerModule.Java:211
attachRootViewToInstance
ReactInstanceManager.Java:897
setupReactContext
ReactInstanceManager.Java:855
access$1000
ReactInstanceManager.Java:109
run
ReactInstanceManager.Java:821
handleCallback
Handler.Java:739
dispatchMessage
Handler.Java:95
dispatchMessage
MessageQueueThreadHandler.Java:31
loop
Looper.Java:148
run
MessageQueueThreadImpl.Java:194
run
Thread.Java:818
Je ne sais pas quelles informations sont nécessaires pour m'aider, mais ce sont au moins les dépendances de mon projet (à partir de package.json):
"dependencies": {
"apisauce": "^0.14.0",
"babel-preset-expo": "^4.0.0",
"format-json": "^1.0.3",
"lodash": "^4.17.2",
"native-base": "^2.3.2",
"prop-types": "^15.5.10",
"querystringify": "0.0.4",
"ramda": "^0.24.1",
"react": "16.0.0-alpha.12",
"react-native": "0.48.4",
"react-native-animatable": "^1.2.4",
"react-native-config": "^0.6.0",
"react-native-elements": "^0.17.0",
"react-native-i18n": "^2.0.6",
"react-native-responsive-ui": "^1.1.1",
"react-native-simple-encryption": "^1.2.1",
"react-native-swiper": "^1.5.13",
"react-native-vector-icons": "^4.4.0",
"react-navigation": "^1.0.0-beta.13",
"react-redux": "^5.0.2",
"redux": "^3.6.0",
"redux-persist": "^4.1.0",
"redux-saga": "^0.15.6",
"reduxsauce": "0.4.1",
"seamless-immutable": "^7.0.1"
},
"devDependencies": {
"@storybook/addon-storyshots": "^3.2.12",
"@storybook/react-native": "^3.2.12",
"babel-jest": "21.2.0",
"babel-plugin-ignite-ignore-reactotron": "^0.3.0",
"babel-preset-es2015": "^6.18.0",
"babel-preset-react-native": "3.0.2",
"enzyme": "^2.6.0",
"husky": "^0.13.1",
"ignite-ir-boilerplate": "^2.1.1",
"jest": "21.2.1",
"mockery": "^2.0.0",
"react-addons-test-utils": "~15.4.1",
"react-dom": "16.0.0-alpha.12",
"react-test-renderer": "16.0.0-alpha.12",
"reactotron-react-native": "^1.12.0",
"reactotron-redux": "^1.11.1",
"reactotron-redux-saga": "^1.11.1"
},
J'ai remarqué que cela se produit lorsque vous déclarez des variables ou des propriétés après avoir exporté votre composant. Par exemple, si vous procédez comme suit:
export default SignInLayout extends React.Component {
render() {
<Header />
<Content />
<Footer />
}
}
const styles = Stylesheet.create({
red: {
color: red
}
});
Vous obtenez l'erreur Trying to add a root view with an explicit id already set
.
Pour résoudre ce problème, déplacez vos déclarations de variables vers le haut avant d'exporter votre composant. Ou Vous pouvez toujours conserver vos déclarations de variables en bas en modifiant le code ci-dessus pour exporter uniquement le composant à la fin.
SignInLayout extends React.Component {
render() {
<Header />
<Content />
<Footer />
}
}
const styles = Stylesheet.create({
red: {
color: red
}
});
export default SignInLayout;
Secouez le téléphone et vous obtiendrez des options contextuelles, Arrêtez les choses suivantes,
Après cela, rechargez simplement la page, cela fonctionnera.