2017-08-16 108 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'], 
}