Почему бы не сцепить диспетчера Redux-Thunk

Почему цепочка не отправляет Redux Thunk? Работает только первая рассылка, а вторая рассылка не работает.

Хранить:

const store = createStore(reducers, loadState(), applyMiddleware(thunk));

Действие:

export function doSomething(name) {
    return function (dispatch) {
        dispatch({
            type: 'USERNAME',
            payload: name
        })
        dispatch({
            type: 'OTHER_TYPE',
            payload: 'text'
        })

         return true;
    }
}

Изменить Это сработало:

return Promise.all([
        dispatch({
            type: 'USERNAME',
            payload: name
        }),
        dispatch({
            type: 'OTHER_TYPE',
            payload: 'text'
        })
    ])

person mrkacan    schedule 07.05.2018    source источник


Ответы (1)


Из документов:

    // We can dispatch both plain object actions and other thunks,
    // which lets us compose the asynchronous actions in a single flow.

    return dispatch(
      makeASandwichWithSecretSauce('My Grandma')
    ).then(() =>
      Promise.all([
        dispatch(makeASandwichWithSecretSauce('Me')),
        dispatch(makeASandwichWithSecretSauce('My wife'))
      ])
    ).then(() =>
      dispatch(makeASandwichWithSecretSauce('Our kids'))
    ).then(() =>
      dispatch(getState().myMoney > 42 ?
        withdrawMoney(42) :
        apologize('Me', 'The Sandwich Shop')
      )
    );

Но я бы рекомендовал использовать redux-saga вместо redux-thunk из-за эти причины.

person Anu    schedule 07.05.2018
comment
Как Redux-Saga справляется с этой задачей? - person mrkacan; 07.05.2018
comment
@mrkaможет надеяться, что это поможет blog.logrocket. ком/ - person Anu; 07.05.2018