使用 IIFE 从 Thunks 调度 Redux Actions
Dispatching Redux Actions from Thunks with IIFEs
我想知道是否还有其他人看到过将 thunk 的动作作为匿名 IIFE 发送的模式。我在一些 thunk 上这样做,但我不确定它是否被认为是不好的做法,或者为什么会这样。对我来说,它有助于避免在我的动作创建者命名中出现冗余。
const action => dispatch => {
//some async stuff
dispatch((()=>({type: ACTION}))())
}
这与我在几乎所有其他地方看到的做法截然相反。虽然,老实说,我在这里没有找到很多我喜欢的关于动作命名和 thunk 命名和代码分离的好观点 material。
更典型的设置:
const action => ({
type: ACTION
})
const thunkAction => dispatch => {
dispatch(action())
}
第一种方法只是让您避免拥有两个功能基本相同但名称相似的函数。我很惊讶我没有看到其他人使用它,尽管也许我只是很久没有使用 redux 了。对我来说,这要容易得多,因为在我使用它的情况下,我永远不会在没有 thunk 的情况下调用 dispatch 动作。但是,也许这只是我忽略的一种不好的做法。
有谁知道为什么这会或不会是一个坏模式?
如果你更喜欢第一个,为什么不
const action => dispatch => {
// some async stuff
dispatch({ type: ACTION })
}
您甚至不需要为此编写函数(动作创建器)。
Redux 不限制你必须使用 action creators。您随时可以直接派发操作对象。
但是动作创作者确实有一些好处。给大家参考http://blog.isquaredsoftware.com/2016/10/idiomatic-redux-why-use-action-creators/
我想知道是否还有其他人看到过将 thunk 的动作作为匿名 IIFE 发送的模式。我在一些 thunk 上这样做,但我不确定它是否被认为是不好的做法,或者为什么会这样。对我来说,它有助于避免在我的动作创建者命名中出现冗余。
const action => dispatch => {
//some async stuff
dispatch((()=>({type: ACTION}))())
}
这与我在几乎所有其他地方看到的做法截然相反。虽然,老实说,我在这里没有找到很多我喜欢的关于动作命名和 thunk 命名和代码分离的好观点 material。
更典型的设置:
const action => ({
type: ACTION
})
const thunkAction => dispatch => {
dispatch(action())
}
第一种方法只是让您避免拥有两个功能基本相同但名称相似的函数。我很惊讶我没有看到其他人使用它,尽管也许我只是很久没有使用 redux 了。对我来说,这要容易得多,因为在我使用它的情况下,我永远不会在没有 thunk 的情况下调用 dispatch 动作。但是,也许这只是我忽略的一种不好的做法。
有谁知道为什么这会或不会是一个坏模式?
如果你更喜欢第一个,为什么不
const action => dispatch => {
// some async stuff
dispatch({ type: ACTION })
}
您甚至不需要为此编写函数(动作创建器)。
Redux 不限制你必须使用 action creators。您随时可以直接派发操作对象。
但是动作创作者确实有一些好处。给大家参考http://blog.isquaredsoftware.com/2016/10/idiomatic-redux-why-use-action-creators/