2016-04-20 18 views
21

我有一些React.js問題。 這是我的代碼:反應錯誤'失敗的propType:提供給'Provider'的prop'children'無效,預計有一個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 
); 

和運行頁面,它甾體抗炎藥:

失敗propType:提供給Provider無效道具children,預計單ReactElement

這是我的相關已安裝節點模塊列表:

  • 反應15.0.1
  • 反應,終極版4.4.5
  • 終極版3.4.0

其實,我正在學習用Redux的反應,所以很難給我,我應該怎麼辦。我只是遵循網站上的教程(我可以給出一個鏈接,但它不是英語),但它只是沒有與該錯誤消息工作。 當我搜索時,有人說升級版的反應和react-redux,但我安裝了最新版本。 任何建議將非常感激。

+0

您觀看的教程可能已過時。請看我的答案。 – wuct

回答

15

根據the doc,您可以使用普通React元素而不是<Provider />中的函數。

結果,只需更改您的代碼

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

我想既然[email protected]這種情況已經改變。

0

原來的問題有一個錯字。您的回答在正確的語法中是正確的。

但是,直接原因是<App />需要在一個單獨的行上。

如果你把它放在與<Provider store={store}>相同的行上,React/Redux試圖用它做比它應該做的更多的事情。

ReactDOM.render(
<Provider store={store}> 
    <App /> 
</Provider>, 
    document.getElementById('root') 
); 
相關問題