我正在项目上使用React和Redux,我在实现启用/禁用按钮的功能时遇到问题.我已经能够:
>触发一个方法
>让该方法触发动作创建者
>发送一个动作
>在reducer中捕获该动作并创建一个新的更新状态
>查看Redux DevTools中的更新状态
但是,启用/禁用功能仍然不起作用,因为似乎mapStateToProps和connect实际上并没有将状态映射到props.我正在跟踪canSubmit,它在状态内发生变化但在道具中未定义.成功将状态映射到道具我错过了什么?
相关代码:
UserFormView.js
@H_403_18@const mapStateToProps = (state) => ({ routerState: state.router,canSubmit: state.canSubmit }); const mapDispatchToProps = (dispatch) => ({ actions: bindActionCreators(ActionCreators,dispatch) }); class UserFormView extends React.Component { @H_404_20@…
@H_403_18@} export default connect(mapStateToProps,mapDispatchToProps)(UserFormView); @H_404_20@操作:
@H_403_18@export function enableSubmit(payload) { return { type: ENABLE_SUBMIT,payload: payload }; } export function disableSubmit(payload) { return { type: DISABLE_SUBMIT,payload: payload }; } @H_404_20@Reducer(使用createReducer辅助函数):
@H_403_18@const initialState = { canSubmit: false }; export default createReducer(initialState,{ [ENABLE_SUBMIT]: (state) => { console.log('enabling'); return Object.assign({},state,{ canSubmit: true }); },[DISABLE_SUBMIT]: (state) => { console.log('disabling'); return Object.assign({},{ canSubmit: false }); } }); @H_404_20@
最佳答案