RxJS-从组件构造函数分派动作

时间:2018-09-26 03:52:49

标签: reactjs redux react-redux rxjs observable

我想从组件构造函数中调度一个动作。

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操作。我注册了我的减速机,并且一切正确。

如何确保正确分派了动作,以便减速器得到它?

1 个答案:

答案 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