Reactjs 从屏幕B导航到A时防止卸载
所以我的问题是:当使用React导航时,当用户导航到屏幕A时,A被挂载。当用户转到屏幕B时,B已安装,A保持安装状态。当用户导航回A时,B将被卸载,但A将保持装载状态 这是预期的 我想让B保持坐骑状态。这可能吗?如果是的话,怎么办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 }) => ({
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中,有没有办法做到这一点?