【问题标题】:How to access prop passed to first tab in other tabs in react-native-router-flux?如何访问传递给 react-native-router-flux 中其他选项卡中第一个选项卡的道具?
【发布时间】:2017-12-03 17:28:12
【问题描述】:
我有一个 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 组件可以访问该道具。但是当点击我的标签栏中的 tab2 Navigation 时,我不再有这个 id 可用。我该如何存储它。在路由器的状态?我该怎么做?
感谢您的帮助
【问题讨论】:
标签:
reactjs
react-native
react-native-router-flux
【解决方案1】:
是的!我在“标签”中发现了问题。
默认情况下,标签是“包装的”——即所有子标签都由带有自己的导航栏的 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 时可以找到这里的 props
【解决方案2】:
我认为不可能以某种神奇的方式保留这些信息。我通过将 id 存储在 redux 中并从每个选项卡的组件中读取它来构建一个简单的解决方法。效果很好。