【问题标题】:How not to unmount previously opened screen of Drawer Navigator如何不卸载以前打开的抽屉导航器屏幕
【发布时间】:2018-11-05 06:14:17
【问题描述】:

我正在使用 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 })}

【问题讨论】:

标签: javascript react-native react-native-navigation native-base


【解决方案1】:

在更高版本的 react native navigation 中,他们为 DrawerNavigator 添加了 unmountInactiveScreens 属性

卸载非活动屏幕 离开屏幕时是否应卸载屏幕。卸载屏幕会重置屏幕中的任何本地状态以及屏幕中嵌套导航器的状态。默认为 false。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-22
    • 2019-08-09
    • 2020-09-12
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多