查看如何使用mapDispatchToProps
大多数示例的示例,遵循以下模式,该函数返回以dispatch
为参数的对象:
const mapDispatchToProps = (dispatch) => {
return({
someFunc: (arg) => {dispatch(someFunc(arg))}
})
}
我的问题是,如果我的所有操作都使用thunk
,这意味着他们无论如何都可以访问dispatch
,为什么我需要使用上面的示例将函数映射到我{{}中的道具1}}?
经过实验,我发现了另一种似乎有效的方法,但我不确定这是否是最佳做法...
Main.jsx
containers
这种方法有什么问题吗?
答案 0 :(得分:1)
这两种方法都是正确的,如果您想将某些操作创建者传递给不了解Redux的组件,并且您不想传递dispatch或Redux存储,也可以使用bindActionCreators它。从技术上讲,这是它的唯一用例。
从documentation,mapDispatchToProps
拉出来可以是一个功能或对象。
我认为您的第一种方法适用于文档,因为您可以轻松查看您在组件中使用的操作创建者的签名,而无需导航到操作创建者文件。除此之外,在大多数情况下,我很好地使用对象(第二种方法)。
希望这有帮助!
答案 1 :(得分:0)
分离关注点是一个好主意,并且在几乎所有应用中,最好使用Action Creators(这是您在第二个示例中所做的)反对使用普通对象(如第一个示例)
有几个好处:
不仅仅是我这样说,Redux文档在这里介绍了它:https://redux.js.org/recipes/reducingboilerplate#action-creators
话虽如此,他们也说普通对象可能就足够了,但是考虑到动作创建者实际上是多么简单,在几乎所有情况下都值得使您的工作具有扩展性。