未定义不是对象(评估“ routes [state.index] .key”)

时间:2018-11-16 15:08:20

标签: react-native react-navigation

我正在使用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上搜索,但没有运气。有人真的可以在哪里搜索吗?

1 个答案:

答案 0 :(得分:0)

我还没有接触过React Native或react-navigation,但我会开枪!

似乎您在错误的位置设置了index

偷看StackActionsNavigationActions文档,看起来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