【问题标题】: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 中并从每个选项卡的组件中读取它来构建一个简单的解决方法。效果很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-21
        • 1970-01-01
        • 1970-01-01
        • 2020-01-02
        • 2018-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多