RxJS - отправить действие из конструктора компонента - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу отправить действие из конструктора компонента.

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 голосов
/ 26 сентября 2018

Ваш метод 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

...