繁体   English   中英

React.children.only期望收到一个react元素子Navigator

[英]React.children.only expected to receive a single react element child Navigator

我尝试了太多的主题帮助,但这并没有帮助我修复这个错误,也许因为我是新手反应原生。

这是给出错误的代码。

render() {
  return (

  <Provider store={store}>

    <Navigator
      initialRoute={{ name: 'Wake' }}
      configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromBottom}
      renderScene={RouteMapper}
    />

    <Tabs />



  </Provider>


 );
}

“React.children.only预计会收到一个反应元素的孩子”我在运行时遇到此错误。 请帮忙。 我知道有很多其他主题发布相似,但没有一个给我一个正确的解决方案。

react-redux <Provider />组件期望其子prop成为单个ReactElement,它是应用程序的根组件。 这可能就是这个错误的来源。

道具

  • store(Redux Store):应用程序中的单个Redux存储。
  • children(ReactElement)组件层次结构的根。

 ReactDOM.render( <Provider store={store}> <div> <MyRootComponent/> <OtherComponent1/> <OtherComponent2/> // {...} as longer you let the component inside one global component // - here the divs - React considers you have only one child. That it. </div> </Provider>, rootEl ); 

资料来源: https//github.com/reactjs/react-redux/blob/master/docs/api.md#provider-store

上面的答案没有给你一个代码示例,我将添加一些适用于你的情况的代码:

const Root = () => {
  return (
   <div>
    <Navigator
      initialRoute={{ name: 'Wake' }}
      configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromBottom}
      renderScene={RouteMapper}
    />

    <Tabs />
   </div>
 )   
}


render() {
  return (
    <Provider store={store}>
      <Root />
    </Provider>
  );
}

您基本上需要在Root组件中包装Nav和Tabs组件,以在Provider组件中呈现它,如其他答案中所述。 希望这可以帮助!

redux的Provider组件期望只有一个子组件。 你传给它两个孩子,Navigator和Tabs。 将Provider中的所有内容包装在单个组件中。

可能会迟到,但你可以在你的Navigator和Tab周围包装React.Fragment来解决这个错误。 https://reactjs.org/docs/fragments.html

render() {
  return (

  <Provider store={store}>
    <React.Fragment>
       <Navigator
         initialRoute={{ name: 'Wake' }}
         configureScene={(route, routeStack) => Navigator.SceneConfigs.FloatFromBottom}
         renderScene={RouteMapper}
       />

       <Tabs />
    </React.Fragment>


  </Provider>


 );
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM