react-native – navigation.dispatch在reactnavigation中未定义
发布时间:2020-12-15 20:43:38 所属栏目:百科 来源:网络整理
导读:我正在使用reactnavigation和redux创建一个反应原生的应用程序. 在加载应用程序时,我从NavContainer收到以下警告:警告:失败的道具类型:道具’navigation.dispatch’在’CardStack’中标记为必需,但其值为’undefined’ 当我尝试通过this.props.navigation
我正在使用reactnavigation和redux创建一个反应原生的应用程序.
在加载应用程序时,我从NavContainer收到以下警告:警告:失败的道具类型:道具’navigation.dispatch’在’CardStack’中标记为必需,但其值为’undefined’ 当我尝试通过this.props.navigation.navigate(‘Station’)导航页面时,这会导致错误;因为navigation.dispatch不是一个函数 该应用程序有一个NavContainer,我猜这是丢失的东西,因为在渲染功能中未定义调度: import React,{ Component } from 'react' import { addNavigationHelpers } from 'react-navigation' import AppNavigator from '../lib/navigationConfiguration' import { connect } from 'react-redux' import { bindActionCreators } from 'redux'; import { ActionCreators } from '../actions'; class NavContainer extends Component { render(){ const { dispatch,navigationState} = this.props return ( <AppNavigator navigation={ addNavigationHelpers({ dispatch: dispatch,state: navigationState }) } /> ) } } function mapStateToProps(state){ return { navigationState: state.nav } } function mapDispatchToProps(dispatch){ return bindActionCreators(ActionCreators,dispatch); } export default connect(mapStateToProps,mapDispatchToProps)(NavContainer)
当您定义mapDispatchToProps时,connect不会将调度传递给包装组件..这就是为什么this.props.dispatch未定义的原因.要解决这个问题,您可以:
function mapDispatchToProps(dispatch){ return Object.assign({dispatch: dispatch},bindActionCreators(ActionCreators,dispatch)); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |