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

Javascript 反应本机导航(未定义不是对象..this.props.navigation.navigate,javascript,react-native,redux,navigation,react-navigation,Javascript,React Native,Redux,Navigation,React Navigation,通过使用redux的方式,我在react本机导航上遇到了一个问题 Listserviceaction.js 包含正在此处导入的webservicecall组件 从“../components/ListComponent”导入ListComponent Listactiontype.js 包含动作类型 export const SERVICE_PENDING='SERVICE_PENDING'等 listcomponent.js 组件,在列表上呈现数据等 还原剂 然后是减速器部分 scenes/L

通过使用redux的方式,我在react本机导航上遇到了一个问题

Listserviceaction.js 包含正在此处导入的webservicecall组件 从“../components/ListComponent”导入ListComponent

Listactiontype.js 包含动作类型 export const SERVICE_PENDING='SERVICE_PENDING'等

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

还原剂 然后是减速器部分

scenes/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>
            );
        }
import React,{Component}来自'React';
从'react redux'导入{Provider};
从“../reducers/index”导入存储;
从“../actions/listserviceaction”导入ServiceAction;
从“本机库”导入{容器、内容、选择器、按钮、文本};
导出默认类RenderList扩展组件{
render(){
返回(
);
}
}

现在,在加载组件之后,当我在我的屏幕上单击press={()=>this.props.navigation.navigate(“ProfileScreen”)}时 listcomponent它触发了一个错误(未定义的不是对象..this.props.navigation.navigate)有问题吗?有更好的解决方案吗?
谢谢。

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

要从一个屏幕导航到另一个屏幕,两个屏幕都应该在
StackNavigator
中。您可以显示您的代码吗单击要在其中导航的屏幕的导航器和代码。

要使用react导航,必须执行以下步骤:

1:
npm i react导航--保存
2:
npm链接反应导航
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而不是page_1或page_2!

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

1:
npm i react导航--保存
2:
npm链接反应导航
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而不是page_1或page_2!

在您的服务操作中包括
this.props.navigation
类似以下内容:

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

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

在您的服务操作中包括
这个.props.navigation
类似的内容:

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

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

我们如何在我上面展示的架构上集成堆栈导航器?RenderList是否包含在堆栈导航器中?是的,它需要添加到堆栈导航器中。请参见此处:我们如何在我上面展示的架构上集成堆栈导航器?RenderList是否包含在堆栈导航器中gator?是的,它需要添加到stack navigator中,请看这里:在JS中,每件事都从index.JS开始,然后通常调用App.JS,所以是的,你可以在App.JS中正确地执行此操作实际上我没有使用redux,但我确定如果你想使用导航,请导航()您首先在stack navigator中修改了屏幕,如图所示:在JS中,每件事都从index.JS开始,然后通常调用App.JS,所以是的,您可以在App.JS中正确执行此操作实际上我没有使用redux,但我确定如果您想使用导航,navigate()您首先在stack navigator中修改了屏幕,如图所示: