如何将道具传递给作为道具传递的组件?

时间:2017-11-11 16:49:05

标签: react-native react-native-router-flux

我正在构建一个小的React Native应用程序并使用react-native-route-flux(v3)。我无法将基于父级状态的道具传递给场景中呈现的组件。

以下是相关代码:

render() {

let {
  drawerOpen
} = this.state

return (
    <Router>
      <Scene
        style={styles.app}
        key='root'>
          <Scene
            passProps={true}
            key='Home'
            component={MainView}
            title='Home'
            initial={true}
            hideNavBar={true}
            customNavBar={<AppHeader handleDrawer={() => this._handleDrawer()} />}
            drawer={<Drawer open={drawerOpen} />} />
          <Scene
            key='Tutorial'
            component={TutorialTile}
            title='Tutorial'
            hideNavBar={true}
            customNavBar={<AppHeader handleDrawer={() => this._handleDrawer()} />}
            drawer={<Drawer open={drawerOpen} />} />
      </Scene>
    </Router>

)

}

但是,open组件的<Drawer /> prop永远不会更新父状态更改,因此永远不会打开。

有没有办法将道具传递给自己作为道具传递下去的组件? (路由器库几乎要求我将抽屉作为道具传递下去。)

谢谢!

编辑:这是_handleDrawer函数,它传递给标题中的按钮:

_handleDrawer() {

let { drawerOpen } = this.state

this.setState({
  drawerOpen: !drawerOpen
})

}

0 个答案:

没有答案