【问题标题】:React Native - addnavigationHelpers is undefinedReact Native - addnavigationHelpers 未定义
【发布时间】:2020-02-05 08:42:42
【问题描述】:

我是 react-native 的新手,在尝试设置我的 appNavigation 和 redux 时遇到了以下错误。

TypeError: (0, _reactNavigation.addNavigationHelpers) 不是函数。 (在 '(0, _reactNavigation.addNavigationHelpers)({dispatch:dispatch, state: nav})' (0, _reactNavigation.addNavigationHelpers)' 中未定义。

代码 -->

App.js -

import React from 'react';

import store from './src/store';
import { Provider } from 'react-redux';
import 'react-native-gesture-handler';
import AppNavigation from './src/components/AppNavigator';

export default class App extends React.Component {
    render() {
        return (
            <Provider store={store}>
                <AppNavigation />
            </Provider>
        );
    }
}

AppNavigator.js -

import React from 'react';
import TodoApp from '../TodoApp';
import TodoDetails from '../components/TodoDetails';

import { connect } from 'react-redux';
import { addNavigationHelpers } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';

export const AppNavigator = createStackNavigator(
    {
        todoDetails: TodoDetails,
        home: TodoApp,
    },
    {
        initialRouteName: 'todoDetails',
    },
);

const AppNavigation = ({ dispatch, nav }) => (
    <AppNavigator navigation={addNavigationHelpers({ dispatch, state: nav })} />
);

const mapStateToProps = state => ({
    nav :state.nav,
});

export default connect(mapStateToProps)(AppNavigation);

编辑 -

我确实按照https://stackoverflow.com/questions/50246457/react-native-reactnavigation-addnavigationhelpers-in-not-a-function 给出的步骤进行操作

但不幸的是,这给出了一个错误提示

TypeError: undefined is not an object (evalating 'state.routes')

错误位于: 在导航器中(在 AppNavigator.js:20) 在 AppNavigation 中(由 ConnectFunction 创建) 在 ConnectFunction 中(在 App.js:19)......

【问题讨论】:

标签: react-native redux react-redux react-navigation


【解决方案1】:

addNavigationHelpers 已从 react-navigation 的默认导出中删除,

需要直接添加到navigationprops as

<AppNavigator navigation={{
   dispatch: this.props.dispatch,
   state: this.props.nav,
   addListener,
}} />

pritish 的一个很好的回答,希望对您有所帮助。s

【讨论】:

  • 已经尝试过答案@gaurav-roy。但是,这给出了一个错误说明undefined is not an object (evaluating 'state.routes')
  • 你在哪里使用过 state.routes?
  • 我没有@gaurav-roy。我将更新完成问题中的错误图像。
猜你喜欢
  • 2021-09-15
  • 2016-09-26
  • 2022-01-21
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
相关资源
最近更新 更多