Dan*_*Dan 7 react-native redux react-navigation
我正在使用reactnavigation和redux创建一个反应原生的应用程序.
加载应用程序后,我从NavContainer收到以下警告: Warning: Failed prop type: The prop 'navigation.dispatch' is marked as required in 'CardStack', but its value is 'undefined'
当我尝试导航页面时导致错误,this.props.navigation.navigate('Station');
因为nav.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)
Run Code Online (Sandbox Code Playgroud)
Luc*_*cas 21
当你定义一个时mapDispatchToProps
,connect
不会传递dispatch
给包装的组件..这就是为什么this.props.dispatch
是未定义的.要解决这个问题,您可以:
function mapDispatchToProps(dispatch){
return Object.assign({dispatch: dispatch}, bindActionCreators(ActionCreators, dispatch));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5133 次 |
最近记录: |