javascript - react 通量 Action 并存储类依赖关系

标签 javascript reactjs ecmascript-6 flux reactjs-flux

据我了解React-Flux架构中,Flux Actions 类应通过 AppDispatcher 将其事件传播到 Store 类。

但是,我看到一些示例是 Action 类直接从 Store 类获取数据以执行某些操作...

示例:

import ... /* a few more imports */
import AppDispatcher from 'AppDispatcher.js';
import SomeStore from 'SomeStore.js';


class SomeActions {

    processItemData(){
        var item = SomeStore.getCurrentItem();
        .
        .
        // do something with the item
        .
        .
        // then data dispatched (anyway) to SomeStore or maybe other Store class
        AppDispatcher.dispatch({...}); 
    }
}

据我所知 - 在这里导入 SomeStore.js 破坏了 Flux 架构以及数据在应用程序中流动的方式。

问题是,这正常吗?这不是不好的做法吗?

最佳答案

正如您认为这是不正确的并且打破了单向数据流的概念。该操作可以处理组件提供给它的数据,但我不明白为什么它需要或应该需要来自存储的任何数据或知识。

这打破了 inversion of control 的原则,因为该操作需要了解商店的自定义实现,而不是简单地调度带有数据的事件 - 这是 Flux 试图避免的架构!

关于javascript - react 通量 Action 并存储类依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34840289/

相关文章:

reactjs - 如何将React-app-rewired与Customize-CRA集成

javascript - React 钩子(Hook)的奇怪行为 : delayed data update

javascript - 如何动态访问嵌套错误/触及 formik 字段

javascript - 属性名称为 `undefined`

javascript - ng-model 和 ng-repeat 关系和理解 $scope

php - 单击相同的按钮打开模型,然后提交表单

javascript - Rails Webpacker 和 stage-2 类转换属性不起作用

javascript - 在迭代器上使用 map()

javascript - 控制台中的 Mapbox 生产错误。 "Uncaught ReferenceError: y is not defined"

javascript - 使用函数式编程获取 "TypeError: undefined is not a function"