我有一个react-react-native-router-flux的路由器,并配置了两个选项卡:
<Scene key="page1" component={Page1} title="Page1" />
<Scene key="mytabs" tabs={true}>
<Scene key="tab1" component={Tab1}/>
<Scene key="tab2" component={Tab2}/>
</Scene>
我打电话给我的第一个标签并传递道具,如:
Actions.mytabs({id:5});
这很好用,Tab1组件可以访问该道具。但是当我点击Tabbar中的tab2导航时,我再也没有这个ID了。我怎么能存储它。在路由器的状态?我该怎么做?
感谢您的帮助
答案 0 :(得分:0)
我认为不可能以某种方式神奇地保存这些信息。我通过将id存储在redux中并在每个选项卡的组件中从中读取它来构建一个简单的解决方法。效果很好。
答案 1 :(得分:0)
是的!我在“标签”中找到了问题。 默认情况下,标签是“包装式”的-也就是说,所有子级均由Stack包裹,并带有自己的导航栏。您可以通过在Tabs上使用wrap = {false}来禁用换行,然后再次检查传递的道具。
<Scene key="Scene" tabs={true} wrap={false}> <Scene key="someTab" component={SomeTab} title="SomeTab" icon={TabIcon}/> <Scene key="Modal" component={Modal} title="Modal" hideNavBar direction="vertical"/> </Scene>
在通过Actions.Modal({someProp:theProp})从someTab传递到Modal时找到了道具