2017-02-20 27 views
1

在服務器上呈現我的應用程序時,我得到並且提供者元素出現Invariant錯誤。錯誤是Invariant Violation: React.Children.only expected to receive a single React element child.我也得到這樣的警告Warning: Failed prop type: Invalid prop孩子of type陣列supplied to Provider, expected a single ReactElement. in Provider這是服務器代碼還是應用程序代碼的問題?

const store = createStoreWithMiddleware(reducers); 
const provider = react.createElement(Provider, { store: store }, RouterContext); 
const ReactApp = renderToString(provider); 

const reactRouter = require('react-router'); 
const RouterContext = reactRouter.RouterContext; 
+0

有毛病'RouterContext',你能告訴我們你是如何做出這個'RouterContext' –

+0

@DavidGuan我更新我的問題與最後兩行 – joethemow

回答

1

<Provider>組件只接受一個單一的元素作爲其子。你可以改變你的代碼通過一個元素,而不是一個數組:

const RouterContext = react.createElement(reactRouter.RouterContext, renderProps); 
const provider = react.createElement(Provider, { store: store }, RouterContext); 
+0

我仍然得到相同的錯誤。 – joethemow

+0

請看我更新的答案。 –

+0

確切地說'renderProps'定義? – joethemow

相關問題