2017-08-16 66 views
1

當我運行我的簡單的程序錯誤商反應,終極版

Index.js

function test(state = []) { 
    return state 
} 

const store = createStore(test); 

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

App.js

const App =() => { 
    return (<h1 > Yo < /h1>) 
} 

export default App; 

我得到這樣的事情:

Error: React.Children.only expected to receive a single React element child. 
    at invariant (invariant.js:44) 
    at Object.onlyChild [as only] (onlyChild.js:33) 
    at Provider.render (Provider.js:49) 
    at ReactCompositeComponent.js:795 
    at measureLifeCyclePerf (ReactCompositeComponent.js:75) 

我做錯了什麼? 當我刪除提供程序渲染應用程序

+0

你能指定導入並分離代碼示例中的文件嗎? –

+0

無法編輯我的問題,我會回覆評論。 index.js ' 進口從陣營「反應」 進口{呈現}從「反應-DOM」 進口{createStore}從「終極版」 進口{提供商}從「反應-終極版」 進口應用從」。/components/App' App.js import從'react'反應 – Vitaliy

+0

檢查App是否爲空,並且確保你正在導入它的控制檯日誌或調試器 – diedu

回答

0

當您有多個孩子檢索(例如,如果您呈現具有多個元素但未包裹在div中的組件)時,通常會發生此錯誤。現在我不能只從上面的代碼中看多少,嘗試將<Provider ... />中的內容包裝在<div>

+0

我試過這個變種。 渲染(< 提供者儲存庫= {存儲}> { ()=>(< div >< span >英雄< /span>

) } < /Provider >, 的document.getElementById( '根') ) 但它也將不能工作。 – Vitaliy

+0

你能否用組件的內容更新你的問題? –

0

您的存儲應該是一個對象,而不是數組。改變你的測試減速器

function test(state = {}) { 
    return state 
} 

可以存儲陣列中您的存儲值,但它需要在頂層的對象。

{ 
    stuff: ['a', 'b'], 
}