在初期使用redux的过程中,想要搭配react-navigation使用(以下简称RN,不是react-native),RN负责路由,而redux负责state的统一管理。基本的思路是:
PS:为了关注核心删去了不必要的部分
const ListStack = createStackNavigator(
{
Home: ListScreen
Add: AddScreen,
},
...
);
const mapStateToProps = state => {
return {
dataList: state.list
}
}
const mapDispatchToProps = dispatch => {
...
}
export default connect(mapStateToProps, mapDispatchToProps)(ListStack);
接下来问题就来了,想要传给ListScreen这个component的dataList属性是永远传不到了,而能获取到的(如果你在ListScreen打印props的话会发现只有navigation的属性)。也就是createStackNavigator完全屏蔽了connect传进来的参数,解决方案当然也很简单,调整一下顺序即可: