Redux: Como despachar muitas ações em um criador de ação

Criado em 1 jun. 2015  ·  3Comentários  ·  Fonte: reduxjs/redux

Tenho alguns exemplos em fluce:

function authFormSubmit(fluce) {
  const {valid, disabled, data: {username, password}} = fluce.stores.authForm

  if (disabled) return

  if (!valid) {
    fluce.dispatch(AUTH_FORM_ERROR, new Error('Form is invalid'))
    return
  }

  fluce.dispatch(AUTH_FORM_DISABLED, true)
  fluce.dispatch(AUTH_FORM_ERROR, null)

  authorize({username, password})
    .then(
      user => fluce.dispatch(CURRENT_USER, user),
      error => fluce.dispatch(AUTH_FORM_ERROR, error)
    )
    .then(
      () => fluce.dispatch(AUTH_FORM_DISABLED, false)
    );
}

Como implementar o mesmo criador de ação no redux? Devo criar um criador de ação para cada tipo de ação?

Comentários muito úteis

Eu provavelmente deixaria o criador de ação retornar uma função. Se for uma função, são fornecidos dispatch e o estado.

Todos 3 comentários

Eu provavelmente deixaria o criador de ação retornar uma função. Se for uma função, são fornecidos dispatch e o estado.

Eu adicionei suporte para ACs assíncronos conforme descrito acima. Por enquanto, eles não podem acessar o estado - provavelmente voltarei a ele em algum momento, mas não quero apressar uma API.

Atualização: você pode fazer isso agora.

// Could also look into state in the callback form
export function incrementIfOdd() {
  return (dispatch, state) => {
    if (state.counterStore.counter % 2 === 0) {
      return;
    }

    dispatch(increment());
  };
}
Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

parallelthought picture parallelthought  ·  3Comentários

timdorr picture timdorr  ·  3Comentários

ilearnio picture ilearnio  ·  3Comentários

ramakay picture ramakay  ·  3Comentários

dmitry-zaets picture dmitry-zaets  ·  3Comentários