reactjs - Redux 操作取决于/耦合到其他操作

标签 reactjs redux action coupling

我正在构建一个 Redux 应用程序(我的第一个),并且不太清楚操作之间的耦合程度是适当的。

我的应用程序有多个表单,其值在 url 中序列化。

例如,有一个用于特定搜索的输入字段,并且在键入时更新 url 参数。还有其他几个输入字段遵循此模式。

在我的顶级 index.js 中,我有几个如下所示的代码块:

// Within the declaration of a high-level component
onForm1Change={(key, value) => {
        // Listened to by "formValues" state cross-section reducer
        store.dispatch({
            type: actions.FORM1_CHANGE,
            key: key,
            value: value
        });

        // Listened to by "url" state cross-section reducer, leads to a url param update.
        // Has it's own logic that is based upon the formValues state.
        // Must run after FORM1_CHANGE finishes
        store.dispatch({
            type: actions.UPDATE_URL,
            formValues: store.getState().formValues
        });
    }
}

UPDATE_URL 这样的操作感觉不太对劲。此操作并不是独立存在的...它依赖于首先调度的其他操作。

Action 之间的这种耦合是代码味道吗?是否有任何常用技术来解耦/重构这些操作?

最佳答案

我认为这是链接同步操作的完全正确的方式。您还可以使用像redux-thunk这样的中间件为此目的,使其更易于阅读(因为您将把操作调度程序函数存储为操作创建器)。这是一些article关于这个话题。

关于reactjs - Redux 操作取决于/耦合到其他操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44252077/

相关文章:

javascript - React useEffect 导致 : Can't perform a React state update on an unmounted component

photoshop - 在 Photoshop 中去除空白

java - 如何在 SwingWorker 线程中取消 did() ?

java - JList 从新列表中清除以前的条目

iphone - 切换表单输入动画在移动 Safari 中奇怪地弹跳

reactjs - 如何修复不可分配给 LibraryManagedAttributes 以用于 react 路由器渲染 Prop 的类型

reactjs - 如何测试具有CSS转换的 react 组件?

javascript - 使用 moxios 测试 redux 异步方法

javascript - 搜索因输入 onBlur 而停止

javascript - 当第一次选择 Select 选项但第二次没有选择时,React/Redux 会失败