我试图了解React和Redux是如何工作的,我正在查看来自this example project的FuelSavingsPage.js。我在var theCheckboxes = $(".pricing-levels-3 input[type='checkbox']");
theCheckboxes.click(function()
{
if (theCheckboxes.filter(":checked").length > 3)
$(this).removeAttr("checked");
});
中找到actions
来自哪里,但我不明白mapDispatchToProps
如何传递给state
或mapStateToProps
如何传递到dispatch
。这是怎么回事?
mapDispatchToProps
答案 0 :(得分:7)
connect()
功能中的所有魔法。此函数调用mapStateToProps
并将state
作为道具传递。 mapDispatchToProps
和dispatch
方法也会发生同样的情况。您可以使用以下伪代码来想象:
function connect(mapStateToProps, mapDispatchToProps) {
mapStateToProps(store.getState()) // just simple callback
mapDispatchToProps(store.dispatch) // the same
}
答案 1 :(得分:6)
React-Redux connect
函数生成一个订阅商店的包装器组件。该包装器组件在每次调度操作后调用store.getState()
,使用当前存储状态调用提供的mapStateToProps
函数,并在必要时使用商店的mapDispatchToProps
函数调用dispatch
。 / p>
丹一段时间写了connect
的简化版,以说明它使用的一般方法。见https://gist.github.com/gaearon/1d19088790e70ac32ea636c025ba424e。