如何不卸载先前打开的抽屉导航器屏幕
How not to unmount previously opened screen of Drawer Navigator
我正在使用 react-native-navigation 并尝试创建一个 DrawerNavigator,它不会像 TabNavigator 的工作方式那样卸载之前打开的屏幕。因为我的一个屏幕包含一个 webview,我不希望它在我每次更换屏幕时都重新加载。
这是 App.js..
中的一些示例代码
const Drawer = DrawerNavigator(
{
Home: { screen: Home },
PageWithWebview: { screen: PageWithWebview},
Settings: { screen: Settings },
},
{
initialRouteName: "Home",
contentComponent: props => <SideBar user={global.user} />
}
);
const AppNavigator = StackNavigator(
{
Drawer: { screen: Drawer },
},
{
initialRouteName: "Drawer",
headerMode: "none"
}
);
export default () =>
<Root>
<AppNavigator/>
</Root>;
在我的边栏组件中,我有按钮可以根据所选内容导航到不同的路线。
onPress={() => this.props.navigation.navigate(selected, { userDetails: global.user })}
在更高版本的 React Native Navigation 中,他们为 DrawerNavigator
添加了 unmountInactiveScreens 属性
卸载InactiveScreens
离开屏幕时是否应卸载屏幕。卸载屏幕会重置屏幕中的任何本地状态以及屏幕中嵌套导航器的状态。默认为假。
我正在使用 react-native-navigation 并尝试创建一个 DrawerNavigator,它不会像 TabNavigator 的工作方式那样卸载之前打开的屏幕。因为我的一个屏幕包含一个 webview,我不希望它在我每次更换屏幕时都重新加载。
这是 App.js..
中的一些示例代码const Drawer = DrawerNavigator(
{
Home: { screen: Home },
PageWithWebview: { screen: PageWithWebview},
Settings: { screen: Settings },
},
{
initialRouteName: "Home",
contentComponent: props => <SideBar user={global.user} />
}
);
const AppNavigator = StackNavigator(
{
Drawer: { screen: Drawer },
},
{
initialRouteName: "Drawer",
headerMode: "none"
}
);
export default () =>
<Root>
<AppNavigator/>
</Root>;
在我的边栏组件中,我有按钮可以根据所选内容导航到不同的路线。
onPress={() => this.props.navigation.navigate(selected, { userDetails: global.user })}
在更高版本的 React Native Navigation 中,他们为 DrawerNavigator
添加了 unmountInactiveScreens 属性卸载InactiveScreens 离开屏幕时是否应卸载屏幕。卸载屏幕会重置屏幕中的任何本地状态以及屏幕中嵌套导航器的状态。默认为假。