reactjs - 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" />
}
}
一开始工作正常,但现在当我导航时,它会将我发送到错误的页面或引用我已删除的页面。
解决方案
这是因为持久性而发生的。它正在记住它存储的路线。为安全起见,每次添加、删除和/或更改路由时,都应更改persistenceKey
以删除它以前的值并再次存储。
例子:
<AppDrawerNavigation persistenceKey="AppDrawerNavigationState" />
至
<AppDrawerNavigation persistenceKey="AppDrawerNavigationState1" />
我在 persistenceKey 名称的末尾添加了一个“1”
推荐阅读
- java - 如何从 Python 脚本中的 jar 文件调用 Java 方法
- r - 如何计算时间戳的平均值、中位数、标准差、最小值和最大值
- javascript - 箭头函数内的换行符抛出“Uncaught SyntaxError: Unexpected token `=>`”
- mongodb - 如何使 $lookup 直接嵌入文档而不是将其包装到数组中?
- python - 对于 a 列中的相同值,将 b 列中的值排序并选择前 5
- css - 嵌入在 CSS 中的 SVG 未正确显示
- ruby - 使用私有方法在 Sinatra 中拆分路由?
- angular - Angular 材质 Datepicker 手动输入
- angular - 在 Angular 中使用父组件的属性
- c# - 命令执行期间遇到致命错误 - C# 仅在 Linux 中