我有一个带有 Menu contentComponent的DrawerNavigator,里面有一个StackNavigator:

export const AppNavigator = DrawerNavigator(
{
    Main: {
        screen: MainNavigator
    }
},
{
    initialRouteName: "Main",
    backBehavior: "initialRoute",
    contentComponent: props => <Menu {...props} />
}
);

菜单组件

export default class Menu extends Component {
  ...
  close() {
    this.props.navigation.navigate("DrawerClose");
  }

  render(){
    return(
      ...
      <MyStackNavigator />
      ...
    )
  }
  ...
}

问题是当抽屉关闭并重新打开时,StackNavigator会保持其状态 . 我需要将StackNavigator重置为其原始状态 .

我可以将导航组件从StackNavigator传递到Menu组件,并在按下关闭按钮时重置它的状态,但是当用户按下设备上的后退按钮时(或通过滑动手势关闭),无法处理该情况) .

当抽屉关闭且StackNavigator未处于初始状态时,按下设备上的后退按钮将影响(隐藏)StackNavigator .