【问题标题】:React native. Back button redirect to the Home page反应原生。后退按钮重定向到主页
【发布时间】:2021-12-18 11:42:07
【问题描述】:

我有一个包含多个组件的选项卡

const HomePageStack = createStackNavigator();
const HomePageScreen = () => (
    <HomePageStack.Navigator initialRouteName='Главная' screenOptions={{ headerShown: true, headerTransparent: true, headerTintColor: '#fff', headerTitleStyle: { color: 'rgba(0, 0, 0, 0)' }, }}>
        <HomePageStack.Screen name='Главная' component={Home} options={{ title: "Главная" }} style={{ height: '100%' }} />
        <HomePageStack.Screen name='Рецепт' component={Recipe} option={{ title: 'Рецепт' }} style={{ height: '100%' }} />
        <HomePageStack.Screen name='Аккаунт' component={Account} option={{ title: 'Аккаунт' }} style={{ height: '100%' }} />
    </HomePageStack.Navigator>
)

检查时,我走这条路(使用navigation.navigate和数据)

首页 -> 配方 -> 帐户 -> 配方

返回按钮可以正常工作,直到我第二次切换到食谱

当我第二次进入食谱并点击返回按钮时,我被转到主页,但我想进入帐户

我没有自定义或更改后退按钮的工作方式。

重定向功能(从帐户到配方 2):

const handleRecipe = (_id) => {
    navigation.navigate('Рецепт', { _id })
}

我希望后退按钮按预期工作并将用户重定向到帐户而不是主页。我怀疑问题出在我的重定向功能上。

【问题讨论】:

    标签: javascript react-native react-navigation


    【解决方案1】:

    navigate 弹回到堆栈中的较早位置,因为Recipe 屏幕已经存在于那里。要在导航堆栈上推送另一个 Recipe 实例,您可以使用 push 操作。因此,在Account 屏幕上,您使用推送操作而不是导航操作以避免返回到已经存在的Recipe 屏幕。示例见https://reactnavigation.org/docs/stack-actions/#push

    【讨论】:

    • 谢谢,现在一切正常
    猜你喜欢
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2019-08-26
    • 2015-04-01
    • 1970-01-01
    • 2019-05-16
    相关资源
    最近更新 更多