提问者:小点点

反应本机导航(未定义不是对象..this.props.navigation.navigate


我有一个关于这个问题的反应原生导航的方式,我使用redux的麻烦。

包含正在此处导入的webservicecall组件从“”导入ListComponent/组件/列表组件';

包含操作ActionType导出常量服务\u挂起='服务\u挂起'等。

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

然后是减速器部分

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

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={()=


共3个答案

匿名用户

在您的ServiceAction中包含此。道具。导航类似以下内容:

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

因为道具。默认情况下,导航位于父组件上

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

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

对我来说,以前也很困惑。干杯

匿名用户

要从一个屏幕导航到另一个屏幕,两个屏幕都应位于StackNavigator中。请出示stacknavigator和您尝试在其中导航的屏幕代码。

匿名用户

要使用响应导航,您必须执行以下步骤:

1:npm i react导航--保存2:npm link react导航3:修改堆栈的顶级类,如下所示:

import page_1 from 'YOUR_PAGE1_PATH'
import page_2 from 'YOUR_PAGE2_PATH'
import { createStackNavigator } from 'react-navigation'

export default createStackNavigator({
      p1 : page_1 //remember the first modified shown first
      p2 : page_2
})

然后在第1页中,如果要导航到第2页:

onPress(()=> this.props.navigation.navigate('p2' , 'maybe other params'))

注意:您必须调用p1、p2而不是第1页或第2页!