J'ai essayé trop d'aide de sujet mais cela ne m'aide pas à corriger cette erreur, peut-être parce que je suis novice pour réagir-natif.
Voici le code qui donne l'erreur.
render() { return ( <Provider store={store}> <Navigator initialRoute={{ name: 'Wake' }} configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromBottom} renderScene={RouteMapper} /> <Tabs /> </Provider> ); }
"React.children.lyly devrait recevoir un seul élément de réaction" Je reçois cette erreur lorsque je l'exécute. Aidez-vous. Je suis conscient qu'il y a beaucoup d'autres sujets affichés similaires, mais aucun ne donne une solution correcte à mon problème.
Le composant reac-redux <Provider />
s'attend à ce que son support enfant soit un seul ReactElement, le composant racine de votre application. C'est probablement de l'origine de cette erreur.
Props
- Store (Redux Store): le magasin Redux unique dans votre application.
- Children (ReactElement) La racine de votre hiérarchie des composants.
Exemple
ReactDOM.render( <Provider store={store}> <MyRootComponent /> </Provider>, rootEl );
Source: https://github.com/reactjs/react-redux/blob/master/docs/api.md#provider-store
Le composant Provider de redux s'attend à avoir un seul enfant. Vous passez deux enfants, Navigator et Tabs. Enroulez tout à l'intérieur du fournisseur dans un seul composant.
Les réponses ci-dessus ne vous ont pas donné un exemple de code, j'ajoute un code qui s'applique à votre situation:
const Root = () => { return ( <Navigator initialRoute={{ name: 'Wake' }} configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromBottom} renderScene={RouteMapper} /> <Tabs /> ) } render() { return ( <Provider store={store}> <Root /> </Provider> ); }
Vous avez essentiellement besoin d'envelopper vos composants Nav et Tabs à l'intérieur d'un composant Root pour le rendre dans le composant Provider, comme indiqué dans d'autres réponses. J'espère que cela t'aides!