Redux调用mapDispatchToProps后store未更新问题排查求助
问题修复方案
- 第一个错误:
connect函数参数顺序错误
react-redux的connect函数第一个参数必须是mapStateToProps,如果你的组件不需要从store获取状态,第一个参数要显式传null,你现在把mapDispatchToProps直接放在第一个参数位置,导致绑定失效。
修复代码:
export default connect(null, mapDispatchToProps)(getOrder);
- 第二个错误:点击事件写法不符合React规范
React的事件回调采用驼峰命名,你写的onclick是原生DOM的写法,在React中不会触发,要改为onClick。
修复代码:
<button onClick={() => this.props.addOrder(this.state)}>Enregistrer et lancer la commande</button>
- 第三个可选校验项:确认action creator定义正确
你导入的addOrderaction creator需要符合规范,返回的对象必须包含和reducer中匹配的type属性,以及接收的参数放在payload字段,示例正确写法:
// ../action.js 文件中 export const ADD_ORDER = 'ADD_ORDER' export const addOrder = (item) => ({ type: ADD_ORDER, payload: item })
同时确认reducer中正确导入了ADD_ORDER常量,避免拼写错误导致case匹配失败。
内容的提问来源于stack exchange,提问作者Etienne Vergne
相关产品推荐
相关产品推荐

