web-dev-qa-db-fra.com

React erreur 'PropType en échec: prop `enfant` non valide fourni à` Fournisseur', attend un seul ReactElement '

j'ai un problème avec React.js. c'est mon code:

import React from 'react';
import { createStore } from 'redux';
import { Provider } from 'react-redux';
import App from './containers/App';
import todoApp from './reducers';

let store = createStore(todoApp);
let rootElement = document.getElementById('root');

React.render(
    <Provider store={store}>
        {() => <App />}
    </Provider>,
    rootElement
);

et lance la page, il dit:

PropType en échec: prop children non valide fourni à Provider, attendu qu'un seul ReactElement

voici la liste de mes modules de noeud installés associés:

  • réagir 15.0.1
  • react-redux 4.4.5
  • redux 3.4.0

en fait, je suis en train d'apprendre React avec Redux, il m'est donc difficile de savoir comment faire. Je viens de suivre le tutoriel sur le site Web (je peux donner un lien, mais ce n'est pas l'anglais) mais il ne fonctionne tout simplement pas avec ce message d'erreur. pendant que je cherchais, quelqu'un a dit que la version de mise à niveau réagissait et réagissait-redux, mais j'ai installé les dernières versions.

32
modernator

Selon la doc , vous pouvez simplement utiliser un élément React) normal au lieu d'une fonction dans <Provider />.

Par conséquent, changez simplement votre code pour

<Provider store={store}>
    <App />
</Provider>

Je pense que cela a changé depuis [email protected].

19
wuct

La question initiale avait une faute de frappe. Votre réponse est correcte dans la syntaxe appropriée.

Cependant, la raison directe est que <App /> doit être placé sur une ligne distincte.

Si vous le mettez sur la même ligne que <Provider store={store}> React/Redux essaie d’en faire plus qu’il ne le devrait.

ReactDOM.render(
<Provider store={store}>
  <App />
</Provider>,
  document.getElementById('root')
);
7
nick rodriguez

J'ai été amené à cela et j'ai simplement oublié de fournir un accessoire. Je dirais assurez-vous que vous fournissez tous les accessoires que votre composant utilise et que devrait le réparer.

0
str8up7od