2016-04-20 10 views
21

ho qualche problema con React.js. questo è il mio codice:Errore di reazione 'PropType non riuscito: prop `child` non valido fornito a` Provider`, previsto un singolo ReactElement'

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 
); 

e corre la pagina, saids:

PropType non riuscita: prop valido children in dotazione per Provider, prevede un unico ReactElement

questo è il elenco dei miei moduli di nodo installati correlati:

  • reagiscono 15.0.1
  • reagire-redux 4.4.5
  • redux 3.4.0

realtà, attualmente sto imparando reagire con Redux, quindi è difficile per me come devo fare. ho appena seguito tutorial sul sito web (posso dare un link, ma non è inglese) ma non funziona proprio con quel messaggio di errore. come ho cercato, qualcuno ha detto la versione di aggiornamento di reagire e react-redux, ma ho installato le ultime versioni. qualsiasi consiglio sarà molto apprezzato.

+0

Il tutorial che hai guardato potrebbe non essere aggiornato. Per favore vedi la mia risposta. – wuct

risposta

15

In base a the doc, è possibile utilizzare un normale elemento React anziché una funzione all'interno di <Provider />.

Di conseguenza, è sufficiente modificare il codice per

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

Penso che questo è cambiato da [email protected]

0

La domanda originale ha avuto un refuso. La tua risposta è corretta nella sintassi corretta.

Tuttavia, la ragione diretta è che <App /> deve essere su una riga separata.

Se lo metti sulla stessa riga di <Provider store={store}> React/Redux prova a fare più con esso di quanto dovrebbe.

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