J'ai essayé trop de sujet aide mais cela ne m'aide pas à corriger cette erreur, peut-être parce que je suis novice à réagir natif.
voici le code qui donne une erreur.
render() {
return (
<Provider store={store}>
<Navigator
initialRoute={{ name: 'Wake' }}
configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromBottom}
renderScene={RouteMapper}
/>
<Tabs />
</Provider>
);
}
"React.children.only s'attend à recevoir un seul enfant d'élément de réaction" Je reçois cette erreur lorsque je l'exécute. s'il vous plaît, aidez ... Je suis conscient qu'il y a beaucoup d'autres sujets postés similaires mais aucun ne donne une solution appropriée à mon problème.
Le composant react-redux <Provider />
s'attend à ce que son prop enfant soit un seul ReactElement, le composant racine de votre application. C’est probablement de là que vient cette erreur.
Props
- store (Redux Store): Le seul magasin Redux dans votre application.
- children (ReactElement) La racine de votre hiérarchie de composants.
Exemple
ReactDOM.render( <Provider store={store}> <div> <MyRootComponent/> <OtherComponent1/> <OtherComponent2/> // {...} as longer you let the component inside one global component // - here the divs - React considers you have only one child. That it. </div> </Provider>, rootEl );
Source: https://github.com/reactjs/react-redux/blob/master/docs/api.md#provider-store
Les réponses ci-dessus ne vous ont pas donné d'exemple de code, je vais ajouter du code qui s'applique à votre situation:
const Root = () => {
return (
<div>
<Navigator
initialRoute={{ name: 'Wake' }}
configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromBottom}
renderScene={RouteMapper}
/>
<Tabs />
</div>
)
}
render() {
return (
<Provider store={store}>
<Root />
</Provider>
);
}
Vous devez fondamentalement envelopper vos composants Nav et Tabs dans un composant racine pour le rendre dans le composant Fournisseur, comme indiqué dans d'autres réponses . J'espère que cela vous aidera!
Peut-être tard pour le post, mais vous pourriez envelopper React.Fragment
dans votre navigateur et votre onglet pour contourner cette erreur. https://reactjs.org/docs/fragments.html
render() {
return (
<Provider store={store}>
<React.Fragment>
<Navigator
initialRoute={{ name: 'Wake' }}
configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromBottom}
renderScene={RouteMapper}
/>
<Tabs />
</React.Fragment>
</Provider>
);
}
Le composant Provider de Redux s'attend à n'avoir qu'un seul enfant. Vous lui passez deux enfants, Navigator et Tabs. Enroulez tout dans le fournisseur dans un seul composant.