我有一个页面,其反应结构大致如下:
<App>
<Sidebar>
<MapLayers>
<Layer id="1" />
<Layer id="2" />
</MapLayers>
</Sidebar>
<Map />
</App>
现在我的组件中包含了所有状态。但这使我的代码变得混乱而难以维护。 我当时希望使用Redux来解决这个状态管理问题。我知道我们可以使用Provider,如果我是正确的,连接到商店并将道具传递给子组件。
我的问题是,如果我的Layer组件中的某个UI元素(例如下拉列表会引发更改事件),我希望修改我的存储状态,而不是将此事件冒泡到Main组件然后执行操作,可以嵌套组件直接调用action方法在store中做一些操作吗?
答案 0 :(得分:1)
是的,您需要做的是将<App />
包裹在<Provider/>
中,然后使用mapStateToProps
(连接属性)将最内层组件与redux状态连接起来在你的组件的道具状态)和mapDispatchToProps
(这使你的行动能够将动作分配给减速器以引起状态变化)