我有一个页面,其在 react 中的结构大致如下:
<App>
<Sidebar>
<MapLayers>
<Layer id="1" />
<Layer id="2" />
</MapLayers>
</Sidebar>
<Map />
</App>
现在我的组件中拥有所有状态。但这使我的代码变得困惑且难以维护。 我一直在寻找使用 Redux 来解决这个状态管理问题。我知道我们可以使用 Provider,如果我是正确的,它会连接到 store 并将 props 传递给子组件。
我的问题是,如果我的 Layer 组件中的某些 UI 元素(例如下拉列表)引发更改事件,并且我想修改我的商店状态,现在不要将此事件冒泡到主组件,然后执行操作,嵌套组件可以直接调用action方法对store进行一些操作吗?
最佳答案
是的,您要做的就是包装您的 <App />
在 <Provider/>
然后你可以使用 mapStateToProps
将最内部的组件与 redux 状态连接起来(它将状态中的属性连接到组件的 props)和 mapDispatchToProps
(这使您的操作能够将操作分派(dispatch)给 reducer 以引起状态更改)
关于javascript - Redux:嵌套组件可以调用操作方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46628951/