单击SideMenu上的按钮时强制重新渲染汉堡包图标

时间:2019-01-01 19:32:15

标签: react-native react-navigation

当用户单击SideMenu中的页面按钮时,抽屉将关闭并进行导航。

HamburgerMenu组件具有一个内部状态,该状态包含应为汉堡标志还是“ X”。

问题是HamburgerMenu不了解此导航(因此不了解抽屉已关闭的事实),因此当用户通过单击关闭抽屉时图标仍为“ X”。

我找不到使SideMenu通知HamburgerMenu有关更改/事件的方法。

这是App.js中的相关代码:

User time (seconds): 0.12
System time (seconds): 0.09
Percent of CPU this job got: 43%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.52
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 41820
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 2448
Voluntary context switches: 18
Involuntary context switches: 55
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0

编辑: 这是我的HamburgerMenu代码:

const DrawerNavigator = createDrawerNavigator({
  Home: {
    screen: HomeScreen
  },
  Settings: {
    screen: SettingsScreen
  }
}, {
  initialRouteName: 'Home',
  contentComponent: SideMenu
});

const AppNavigator = createStackNavigator({
    DrawerNavigator: {
      screen: DrawerNavigator,
      navigationOptions: ({ navigation }) => ({
        headerLeft: <HamburgerMenu navigation={navigation} />           
    })
  }
});

const AppContainer = createAppContainer(AppNavigator);
export default AppContainer;

谢谢!

1 个答案:

答案 0 :(得分:0)

现在没有为抽屉提供任何事件,但是您可以通过确定抽屉是打开还是关闭来制作自己的事件

.gitignore

因此您可以保持菜单状态,在HamburgerMenu内部单击

或者您也可以收听redux上的操作