为什么在没有mapStateToProps或mapDispatchToProps作为args的情况下调用connect函数?

时间:2016-12-08 16:22:18

标签: react-redux

在文档中的一个Redux示例中,调用connect函数时没有args。这可以在示例的底部看到。

 SELECT inventoryItem.itemSize,
        inventoryItem.itemColor, 
        count(1) count
   FROM inventoryItem
GROUP BY inventoryItem.itemSize, inventoryItem.itemColor

根据我的理解,connect函数的目的是让容器组件以回调的形式访问动作调度程序,以及以道具的形式从商店访问状态。

因此,在没有指定要为组件提供访问权限的状态和操作创建者的情况下调用connect的原因并不合理。

1 个答案:

答案 0 :(得分:8)

connect()(AddTodo)会将dispatch作为道具传递给AddTodo组件,即使没有状态或预定义操作,该组件仍然有用。

Redux(和react-redux)是一个非常低级的库。它允许您对组件可以访问的状态和操作非常严格,或者您可以将整个存储和每个操作传递给每个组件,以及介于两者之间的所有操作。

由您自行决定适合您的申请的严格程度。

为什么要使用connect,你可能会问?好connect只是通过React上下文传递存储/调度,因此您不必通过许多组件传递存储。您不 使用connect。任何模块/ HOC模式都可以工作,connect恰好是一个方便的东西。