我有一个带有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。