首页 > 解决方案 > 反应本机导航(未定义不是对象.. this.props.navigation.navigate

问题描述

我在使用 redux 的方式对本机导航做出反应时遇到了麻烦。

Listserviceaction.js

包含 webservicecall 组件在此处导入 import ListComponent from '../components/ListComponent';

Listactiontype.js

包含动作 ActionTypes export const SERVICE_PENDING = 'service_pending' 等。

列表组件.js

组件,在列表中呈现数据等

减速机

然后是减速机部分

场景/List.js

存储绑定将在应用程序的初始点内完成,并传递给其他应用程序组件,如下所示。

import React, { Component } from 'react';
import { Provider } from 'react-redux';
import store from '../reducers/index';
import ServiceAction from '../actions/listserviceaction';
import { Container, Content, Picker, Button, Text } from "native-base";

    export default class RenderList extends Component {
        render() {
            return (
                <Provider store={store}>
                    <ServiceAction />
                </Provider>
            );
        }

}

现在在加载组件之后,当我在我的列表组件上单击 onPress={() => this.props.navigation.navigate("ProfileScreen")} 时,它会触发一个错误(未定义不是对象.. this.props。 navigation.navigate) 有什么问题吗?有更好的解决方案吗?谢谢你。

标签: javascriptreact-nativereduxnavigationreact-navigation

解决方案


在您的 ServiceAction 中包含this.props.navigation如下内容:

<ServiceAction navigation={this.props.navigation}/>

因为props.navigation默认情况下在您的父组件上

在 ServiceAction 组件上,您将访问导航,例如:

..
goToSignUp() {
   this.props.navigation.navigate('SignUp');
}
..

对我来说之前也很困惑。干杯!


推荐阅读