React native NavigationDrawer navigation.toggleDrawer()不起作用

时间:2018-06-13 08:04:53

标签: reactjs react-native navigation drawer

我在标题中有一个按钮可以打开&关闭导航抽屉菜单。 当我从componentDidMount()调用下面的方法时,它工作并打开菜单:

this.props.navigation.toggleDrawer();

但是当我点击按钮时它没有工作,只是淡出屏幕! 这是组件代码:

export class Home extends BaseScreen {
  constructor(props) {
    super(props);
  }

  static navigationOptions = ({ navigation }) => {
    const { params = {} } = navigation.state;
    return ({
      headerStyle: {
        backgroundColor: '#FF9800'
      }
      , headerRight: <UserCoins />
      , headerLeft: <Button onPress={params.handlePress} title='Menu' />
      , title: 'title'
    })
  }

  _handlePress() {
    this.props.navigation.toggleDrawer();
  }

  state = {
    coins: 0,
  }
  //

  componentDidMount() {
    this.props.navigation.setParams({
      handlePress: this._handlePress.bind(this)
    });
    //here working
    this.props.navigation.toggleDrawer();
  }

  render() {
    return (<Text />);
  }

}

export default Home

我的导航器结构是:

1.SwitchNavigator

2.BottomTabNavigator

3.DrawerNavigator

4.StackNavigator(其中包含Home组件)

1 个答案:

答案 0 :(得分:0)

您可以调用传递给静态NavigationOptions的“导航”,而不是尝试将其绑定在params中进行导航。

在onPress事件中尝试使用按钮

onPress={() => navigation.navigate('DrawerToggle')}