javascript - Redux:嵌套组件可以调用操作方法吗?

标签 javascript redux nested react-redux

我有一个页面,其在 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/

相关文章:

javascript - 使用 Socket.io 处理多个选项卡

reactjs - combineReducers() 在 React Redux 中不起作用

python - 使用 python 将嵌套列表转换为行

javascript - Redux - 状态如何传递给 reducer ?

java - 关键字 'new' 如何工作,特别是当我启动静态嵌套类时?

Excel 嵌套 IF 函数与 AND/OR

javascript - 如何访问组件的引用?

javascript - addEventListener 使用 for 循环并传递值

javascript - 分配 `window.onload` 后 `window.__proto__ = prelude` 运行失败,但为什么呢?

javascript - 如何在 App 启动时使用 redux 启动 fetch?