使用IIFE从Thunks调度Redux操作

时间:2017-05-16 02:59:42

标签: reactjs redux state redux-thunk reducers

我想知道是否有其他人已经看到了作为匿名IIFE从thunk发送动作的模式。我是在一些thunk上做的,但我不确定它是否被认为是不好的做法,或者为什么会这样。对我来说,它有助于保持我的动作创建者命名的冗余。

const action => dispatch => {
  //some async stuff
  dispatch((()=>({type: ACTION}))())
}

这与我几乎在其他任何地方看到它的方式相反。虽然,老实说,我还没有找到很多关于动作命名和thunk命名以及代码分离的好主意材料。

更典型的设置:

const action => ({
  type: ACTION
})

const thunkAction => dispatch => {
  dispatch(action())
}

第一种方法只是让你不会有两个同样命名的函数,它们的服务基本相同。我很惊讶我没有看到其他人使用它,虽然也许我只是没有使用redux很长时间。对我来说这更容易,因为在我使用它的情况下,我绝不会在没有thunk的情况下调用dispatch。然而,也许这只是我忽视的一个不好的做法。

有谁知道为什么这会或不会是一个糟糕的模式?

1 个答案:

答案 0 :(得分:1)

如果你更喜欢第一个,为什么不呢

const action => dispatch => {
  // some async stuff
  dispatch({ type: ACTION })
}

你甚至不需要为此编写一个函数(动作创建者)。

Redux并不限制您必须使用动作创建者。您可以随时直接发送操作对象。

但是动作创作者确实有一些好处。以下是http://blog.isquaredsoftware.com/2016/10/idiomatic-redux-why-use-action-creators/

的参考资料