首页 > 解决方案 > react-navigation 用于将本机发送到错误的屏幕

问题描述

我正在为 iOS 和 Android 构建一个 react-native 应用程序。我正在使用 react-navigation 来处理路由和导航,如下所示:

const AppDrawerNavigation = createDrawerNavigator({
    Login: {
        screen: Screens.Auth.Login,
        path: '/login'
    },
    Register: {
        screen: Screens.Auth.Register,
        path: '/register'
    },
    Forgotten: {
        screen: Screens.Auth.Forgotten,
        path: '/forgotten'
    },

    Profile: {
        screen: Screens.Profile,
        path: '/profile'
    }
})

然后我在 React 中渲染它

export default class App extends React.Component {
    render() {
        return <AppDrawerNavigation persistenceKey="AppDrawerNavigationState2"  />

    }
}

一开始工作正常,但现在当我导航时,它会将我发送到错误的页面或引用我已删除的页面。

标签: reactjsreact-nativereact-navigation

解决方案


这是因为持久性而发生的。它正在记住它存储的路线。为安全起见,每次添加、删除和/或更改路由时,都应更改persistenceKey以删除它以前的值并再次存储。

例子:

<AppDrawerNavigation persistenceKey="AppDrawerNavigationState"  />

<AppDrawerNavigation persistenceKey="AppDrawerNavigationState1"  />

我在 persistenceKey 名称的末尾添加了一个“1”


推荐阅读