如何识别React的FLUX中的组件

时间:2015-11-25 21:37:22

标签: reactjs reactjs-flux

我对FLUX很新,所以我开始在他们的网站上使用TODO示例: https://facebook.github.io/flux/docs/todo-list.html

Listening to Changes with a Controller-View 部分:

TodoApp中存在事件绑定:

this._onChange

_onChange: function() { this.setState(getTodoState()); } 就像:

addChangeListener: function(callback) {
    this.on(CHANGE_EVENT, callback);
}

来自TodoStore的addChangeListener就像:

_onChange()

让我困惑的是:

似乎商店只是注册了if ($('.sticky-sidebar').length) { var sideBarTop = $('.sticky-sidebar').offset().top; stickySidebar = function() { if ($(window).width() >= 768) { $('.sticky-sidebar').css({ width: 0.25*($('#container').width()) }); if ($(window).scrollTop() >= (sideBarTop - $('#header').outerHeight(true))) { $('.sticky-sidebar').css({ position: 'fixed', top: $('#header').outerHeight(true), left : $("#content").offset().left }); } else { $('.sticky-sidebar').css({ position: '', top: '' }); } } else { $('.sticky-sidebar').css({ width: $('#container').width() }); } }; stickySidebar(); $(window).scroll(stickySidebar); $(window).on('resize', stickySidebar); } ,但如果页面上有多个TodoApps,TodoStore如何知道需要调用哪个_onChange()。 < / p>

1 个答案:

答案 0 :(得分:1)

TodoStore只是发出事件,并且正在监听该商店的每个组件都会更新。因此,如果页面上有两个TodoApp,则两者都将更新。