Redux: 如何在一个动作创建者中分派多个动作

创建于 2015-06-01  ·  3评论  ·  资料来源: reduxjs/redux

我有一些关于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)
    );
}

如何在 redux 中实现相同的动作创建者? 我应该为每个动作类型创建动作创建器吗?

最有用的评论

我可能会让动作创建者返回一个函数。 如果它是一个函数,则给出dispatch和状态。

所有3条评论

我可能会让动作创建者返回一个函数。 如果它是一个函数,则给出dispatch和状态。

如上所述,我添加了对异步 AC 的支持。 目前,他们无法访问状态——我可能会在某个时候回到它,但我不想急于使用 API。

更新:您现在可以执行此操作。

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

    dispatch(increment());
  };
}
此页面是否有帮助?
0 / 5 - 0 等级