【发布时间】:2016-01-11 22:43:44
【问题描述】:
我正在通过下面的链接学习 reactjs 通量模式
https://scotch.io/tutorials/getting-to-know-flux-the-react-js-architecture
我完全被下面的代码弄糊涂了,下面的代码什么时候会被触发或使用?我在应用程序中看不到 this._onChange 将被触发的任何地方...请帮助并解释任何建议,因为我开始学习。
// Listen for changes
componentDidMount: function() {
ShoeStore.addChangeListener(this._onChange);
},
// Unbind change listener
componentWillUnmount: function() {
ShoesStore.removeChangeListener(this._onChange);
},
在商店中,是否意味着为了触发更新需要运行ShoesStore.emitChange()?
// Emit Change event
emitChange: function() {
this.emit('change');
},
// Add change listener
addChangeListener: function(callback) {
this.on('change', callback);
},
// Remove change listener
removeChangeListener: function(callback) {
this.removeListener('change', callback);
}
【问题讨论】:
-
@BinaryMuse 感谢队友,我确实了解 EventEmitter,但我只是对何时触发感到困惑?正如 dytori 所说,商店将自动调用 onChange。
-
当您创建商店时,您通常会自己致电
emitChange()(通常不是自动的)。 -
@BinaryMuse 谢谢队友,我会测试一下。再次意识到它是主人......布兰登。
-
@BinaryMuse 你是对的,找出这行代码 // 如果动作被响应,发出更改事件 ProductStore.emitChange();