Reactjs 从屏幕B导航到A时防止卸载

Reactjs 从屏幕B导航到A时防止卸载,reactjs,react-native,react-navigation,Reactjs,React Native,React Navigation,所以我的问题是:当使用React导航时,当用户导航到屏幕A时,A被挂载。当用户转到屏幕B时,B已安装,A保持安装状态。当用户导航回A时,B将被卸载,但A将保持装载状态 这是预期的 我想让B保持坐骑状态。这可能吗?如果是的话,怎么办 const ThisStack = createStackNavigator( { A: { screen: ScreenA, navigationOptions: ({ navigation }) => ({

所以我的问题是:当使用React导航时,当用户导航到屏幕A时,A被挂载。当用户转到屏幕B时,B已安装,A保持安装状态。当用户导航回A时,B将被卸载,但A将保持装载状态

这是预期的

我想让B保持坐骑状态。这可能吗?如果是的话,怎么办

const ThisStack = createStackNavigator(
  {
    A: {
      screen: ScreenA,
      navigationOptions: ({ navigation }) => ({
        headerLeft: <HamburgerMenuButton navigation={navigation} />,
      }),
    },
    B: {
      screen: ScreenB,
    },
  },
  {
    initialRouteName: 'FOO',
    headerMode: 'screen',
    defaultNavigationOptions: navigationOptions,
  }
);
const thistack=createStackNavigator(
{
A:{
屏幕:ScreenA,
导航选项:({navigation})=>({
头左:,
}),
},
B:{
屏幕:屏幕B,
},
},
{
initialRouteName:'FOO',
headerMode:'屏幕',
默认导航选项:导航选项,
}
);
为什么我要安装这个

嗯,我必须使用一个名为。Reactive有一个名为的基本组件,当卸载该组件时,它会调用一个
removeComponent
函数,我正试图阻止它发生


看起来,Reactive并不是为了在不同的屏幕中使用而创建的,但是为了实现我想要完成的,我需要以这种方式使用它

这很容易。您当前使用的是
StackNavigation
,其工作原理是将屏幕安装在彼此的顶部,并在不再需要时将其卸载。另一方面,如果您只想在不同的屏幕之间导航而不卸载屏幕,则可以选择许多其他导航选项。例如,
TabNavigation
DrawerNavigation
切换导航器
,等等,或者您甚至可以使用
反应导航
构建自己的
导航器

这里我使用的是
switchNavigator
,它通常用于身份验证流,即登录用户或注销用户

const ThisStack = createSwitchNavigator(
  {
    A: {
      screen: ScreenA,
      navigationOptions: ({ navigation }) => ({
        headerLeft: <HamburgerMenuButton navigation={navigation} />,
      }),
    },
    B: {
      screen: ScreenB,
    },
  },
  {
    initialRouteName: 'FOO',
    headerMode: 'screen',
    defaultNavigationOptions: navigationOptions,
  }
);
const thistack=createSwitchNavigator(
{
A:{
屏幕:ScreenA,
导航选项:({navigation})=>({
头左:,
}),
},
B:{
屏幕:屏幕B,
},
},
{
initialRouteName:'FOO',
headerMode:'屏幕',
默认导航选项:导航选项,
}
);

我所做的只是简单地使用
createSwitchNavigator
而不是
createStackNavigator
。让我知道这对你是否有效

这很容易。您当前使用的是
StackNavigation
,其工作原理是将屏幕安装在彼此的顶部,并在不再需要时将其卸载。另一方面,如果您只想在不同的屏幕之间导航而不卸载屏幕,则可以选择许多其他导航选项。例如,
TabNavigation
DrawerNavigation
切换导航器
,等等,或者您甚至可以使用
反应导航
构建自己的
导航器

这里我使用的是
switchNavigator
,它通常用于身份验证流,即登录用户或注销用户

const ThisStack = createSwitchNavigator(
  {
    A: {
      screen: ScreenA,
      navigationOptions: ({ navigation }) => ({
        headerLeft: <HamburgerMenuButton navigation={navigation} />,
      }),
    },
    B: {
      screen: ScreenB,
    },
  },
  {
    initialRouteName: 'FOO',
    headerMode: 'screen',
    defaultNavigationOptions: navigationOptions,
  }
);
const thistack=createSwitchNavigator(
{
A:{
屏幕:ScreenA,
导航选项:({navigation})=>({
头左:,
}),
},
B:{
屏幕:屏幕B,
},
},
{
initialRouteName:'FOO',
headerMode:'屏幕',
默认导航选项:导航选项,
}
);

我所做的只是简单地使用
createSwitchNavigator
而不是
createStackNavigator
。让我知道这对你是否有效

你能找到@Dres的解决方案吗?我找到了!我使用“react native drawer”软件包,将抽屉设置为从右侧打开。它给了我一个类似的屏幕导航动画,它就像一个屏幕,如果你设置偏移量为0,它不会卸载!你能找到这个@Dres的解决方案吗?我找到了!我使用“react native drawer”软件包,将抽屉设置为从右侧打开。它给了我一个类似的屏幕导航动画,它就像一个屏幕,如果你设置偏移量为0,它不会卸载!在没有SwitchNavigator的React Navigation 5中,有没有办法做到这一点?在没有SwitchNavigator的React Navigation 5中,有没有办法做到这一点?