我想从组件构造函数中调度一个动作。
static dispatchAction(props) {
if(props && props.key && props.key.innerKey) {
Rx.Observable.of(ac.setInnerKey(props.key.innerKey));
}
}
constructor(props) {
super(props);
Componentt.dispatchAction(props);
}
这是我的减速器中的钥匙:
export const ac: acType= {
setInnerKey: key => {
return {
type: actionTypes.SET_INNER_KEY,
innerKey: key
};
}
};
export const reducer = (state, action) => {
switch (action.type) {
case actionTypes.SET_INNER_KEY: {
return {
...state,
innerKey: {...action.innerKey}
};
}
default:
return state;
}
};
正在正确调用setInnerKey
函数,但是减速器未执行SET_INNER_KEY
操作。我注册了我的减速机,并且一切正确。
如何确保正确分派了动作,以便减速器得到它?
答案 0 :(得分:1)
您的dispatchAction
方法未调度任何操作。您正在调用动作创建者方法acType.setInnerKey
,但是此方法的返回值(即动作对象)根本没有被分派。
您必须使用dispatch
方法的输出作为参数来调用redux的acType.setInnerKey
方法。
如果使用react-redux
,则可以使用mapDispatchToProps
函数访问调度方法。如果您需要有关mapDispatchToProps
的更多信息,请参考https://github.com/reduxjs/react-redux/blob/master/docs/api.md#connectmapstatetoprops-mapdispatchtoprops-mergeprops-options