我正在使用react-native和react-navigation以及执行代码时开发一个应用程序:
const reset = StackActions.reset({
actions: [
NavigationActions.navigate({
index: 0,
routeName: "intervention",
params: {
button: true
}
})
],
});
this.props.navigation.dispatch(reset);
下面我有以下错误:undefined不是对象(正在评估“ routes [state.index] .key”)
我的第一个直觉是做一个grep,但这就是结果:
[jjulien@localhost appRoot]$ grep -r "routes[state.index].key"
[jjulien@localhost appRoot]$
我真的不知道它从哪里来,我在Stack OverFlow和Stack Navigation的GitHub上搜索,但没有运气。有人真的可以在哪里搜索吗?
答案 0 :(得分:0)
我还没有接触过React Native或react-navigation
,但我会开枪!
似乎您在错误的位置设置了index
。
偷看StackActions和NavigationActions文档,看起来index
属于您传递给reset
而不是navigate
的对象。尝试将您的代码切换为这样:
const reset = StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({
routeName: "intervention",
params: {
button: true
}
})
],
});
作为附加功能,您要查找的代码不在您自己的代码库中,而是来自react-navigation
的{{3}}文件。当您运行该StackActions.reset
操作时,StackRouter
稍后会在其内部状态下查找index
的新值。由于index
没有在您的代码中定义,因此路由器无法在其历史记录中找到应引用的条目。
希望能做到! :D