反应本机 NavigationDrawer navigation.toggleDrawer() 不起作用

Posted

技术标签:

【中文标题】反应本机 NavigationDrawer navigation.toggleDrawer() 不起作用【英文标题】:React native NavigationDrawer navigation.toggleDrawer() doesn't work 【发布时间】:2018-11-22 17:33:46 【问题描述】:

我在标题中有一个按钮来打开和关闭导航抽屉菜单。 当我从 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.抽屉导航器

4.StackNavigator(里面有Home组件)

【问题讨论】:

我也遇到了同样的问题,你找到解决办法了吗? 【参考方案1】:

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

在你的 onPress 事件中为你的按钮试试这个

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

【讨论】:

以上是关于反应本机 NavigationDrawer navigation.toggleDrawer() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

NavigationDrawer 在 itemclick 处不执行任何操作

如何在本机反应中为数组的每个元素分配相同的值。如何在本机反应中制作密钥对数组

需要未知模块“反应”的反应本机错误

本机动画模块不可用 - 反应本机

反应本机导航:无法解析模块反应导航

反应 JS 与反应本机