我想知道是否有其他人已经看到了作为匿名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。然而,也许这只是我忽视的一个不好的做法。
有谁知道为什么这会或不会是一个糟糕的模式?
答案 0 :(得分:1)
如果你更喜欢第一个,为什么不呢
const action => dispatch => {
// some async stuff
dispatch({ type: ACTION })
}
你甚至不需要为此编写一个函数(动作创建者)。
Redux并不限制您必须使用动作创建者。您可以随时直接发送操作对象。
但是动作创作者确实有一些好处。以下是http://blog.isquaredsoftware.com/2016/10/idiomatic-redux-why-use-action-creators/
的参考资料