【发布时间】:2015-04-04 14:42:16
【问题描述】:
我有多个 Flux 商店。现在很明显,它们都在扩展同一个事件发射器单例。这导致商店之间的事件相互冲突(即使是最常见的,emitChange)。做Store1.getID() 和Store2.getID() 似乎没有区别,因为商店似乎是从其他商店扩展而来的一个大对象。我做错了什么?
这个问题我已经有一段时间了,这让我发疯了。我相信这有一个我想念的简单答案。这是我等待中继和 GraphQL 的原因之一。
编辑:我所有的商店在代码中的样子。
var Events = require('events'), extend = require('deep_extend'),
EventEmitter = Events.EventEmitter,
CHANGE_EVENT = 'change';
var SomeStore = extend(EventEmitter.prototype, {
someGetter: function(){
return _someVar;
},
dispatchToken: AppDispatcher.register(function(action) {
switch(action.type) {
case 'SOME_ACTION':
_someVar = 'someValue'
break;
default:
return true;
}
SomeStore.emitChange();
return true;
})
});
return SomeStore;
【问题讨论】:
-
您如何创建自己的商店?你能分享你的代码吗?
标签: reactjs reactjs-flux