react-native-router-flux不会触发生命周期挂钩

时间:2016-05-23 00:18:33

标签: react-native

使用:
- react-native-router-flux v3.26.1
- react-native v0.26.1

我有一些简单的场景组件设置如下:

<Router>
  <Scene key="root">
    <Scene key="tabbar" tabs={true}
            rightButtonImage={require('./img/settings-icon-small.png')}
            onRight={Actions.settings}
            >
        <Scene key="tab2" icon={TabIcon} title="Component 1">
            <Scene key="component1" component={Component1} title="Title 1" />
        </Scene>
        <Scene key="tab3" icon={TabIcon} initial={true} style={{flex:1, backgroundColor:'transparent'}} title="Component 2">
            <Scene key="component2" component={Component2} title="Title 2" />
        </Scene>
        <Scene key="tab1" icon={TabIcon} title="Component 3">
            <Scene key="component3" component={Component3} title="Title 3" />
        </Scene>
    </Scene>
    <Scene key="settings" title="Settings" component={Settings} />
  </Scene>
</Router>

标签组件应该使用AsyncStorage中的设置来决定要显示的内容。

“settings”组件执行简单操作,允许用户设置AsyncStorage中保存的选项。通过设置,然后重新加载应用程序并检查保存的值,确认这是有效的。

通过导航栏右上角的链接实现导航到“设置”组件,然后返回主要的三个选项卡式组件,只需使用导航栏“后退”按钮行为即可完成。

目前的试验和错误:

从AppRoot传递到道具

  • AppRoot是设置的地方,render()具有上面的代码片段
  • 在初始加载时工作得很好,但是没有触发后续生命周期事件,因此永远不会触发AppRoot重新加载AsyncStorage值,因此永远不会生成新的prop值以传递给Scene组件。

尝试从独立组件中读取AsyncStorage。

  • 在初始加载时效果很好,但没有触发后续生命周期事件,因此组件永远不知道何时再次查看。

我该如何做到这一点?
我在实施中做错了吗? 我对RNRF的工作原理做了错误的假设吗?

1 个答案:

答案 0 :(得分:0)

对于在这里磕磕绊绊的人来说,到目前为止我发现的一种方法是使用香草Flux环来保持已安装的组件最新。为此,我确定任何品种都可以正常工作(还原等)。

我正在尝试查看RNFR中的点击操作是否会实际触发常规反应生命周期事件,但我想这并不会发生。

任何比我更了解的人的进一步见解,请提供! : - )