React native 是否有任何解决方案可以从其他组件更新react本机路由器流量中的抽屉

React native 是否有任何解决方案可以从其他组件更新react本机路由器流量中的抽屉,react-native,drawer,react-native-router-flux,React Native,Drawer,React Native Router Flux,我试图在react native router flux中创建一个动态抽屉。 我的意思是,当我更改场景时,抽屉可以检测现在激活的场景,并可以通过新数据更新自身。 我抽屉里有一个组件,可以调用App.js <Drawer key={'drawer'} contentComponent = {() => <DrawerLayout language={this.state.language} />} drawerPosition= {this.stat

我试图在react native router flux中创建一个动态抽屉。 我的意思是,当我更改场景时,抽屉可以检测现在激活的场景,并可以通过新数据更新自身。 我抽屉里有一个组件,可以调用App.js

<Drawer
    key={'drawer'}
    contentComponent = {() => <DrawerLayout language={this.state.language} />}
    drawerPosition= {this.state.rightOrLeft}

    <Stack key={'root'} hideNavBar>
        <Scene key={'splash'} component={Splash} initial/>
        <Scene key={'login'} component={Login} />
        <Scene key={'home'} component={Home} />
        <Scene key={'about'} component={About} />
    </Stack>
</Drawer>
}
抽屉位置={this.state.rightOrLeft}

我希望我能正确地解释我的梦想

如果您使用的是redux,则可以保留状态并从存储中获取当前场景,然后对其进行播放

如果您不使用redux,您仍然可以不用它来完成它。一种选择是执行以下操作:

  • 在DroperNavigator中使用contentComponent并从单独的js文件中获取内容

    contentComponent:props=>

  • 现在您需要全局变量在App.js name中声明为currentScene,并将主页设置为默认值

  • 现在让我们加入sideBar.js中的所有内容,单击每个菜单项,将全局变量值更改为所选菜单

  • 根据SideBar.js中当前场景的值更改菜单项列表

  • 一个很好的例子是react native base kitchen水槽示例应用程序。阅读其中的代码,熟悉后按照四个步骤完成


    非常感谢亲爱的朋友,唯一的问题是我无法检测抽屉中的全局变量何时发生更改,是否有任何解决方案,而不是在componentDidMount()中使用Redux或setInterval?您不需要任何更改事件,您可以将其保存在状态变量中,它将对其进行管理。您还可以将当前屏幕的值存储在异步存储中,或者如果您使用的是领域,则可以存储在领域对象中,尽管这不是最佳做法。如果改用redux,效果会更好@AliesFandia最终我通过使用redux达到了目标,一开始真的很复杂,谢谢朋友。如果有帮助,请将答案标记为正确。另外,如果你能上传redux学习项目并分享链接,对其他人也会有帮助。供将来参考:我最终通过使用redux实现了目标。