据我了解React-Flux架构,Flux Actions
类应通过Store
将其事件传播到AppDispatcher
类。
但是,我看到一些例子是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
架构以及数据在应用中的流动方式。
问题是,这是正常的吗?这不是一种不好的做法吗?
答案 0 :(得分:0)
您认为这是不正确的,并打破了单向数据流的概念。该操作可以处理组件提供给它的数据,但我不明白为什么它需要或者应该要求商店提供任何数据或知识。
这打破了inversion of control的原则,因为动作需要知道商店的自定义实现,而不是简单地调度带有数据的事件 - 这是一种通量为试图避免!