场景
page文件里:
mixins:[Reflux.connect(Store)],
getInitialState: function () {
Action.getInitData();
},
store文件里:
var Store = Reflux.createStore({
listenables: [Action],
data: {},
onGetInitData : function(){
var t = this;
DB.Gate.getInitData().then(function (data) {
t.updateComponent();
});
},
updateComponent: function () {
this.trigger(this.data);
},
getInitialState: function() {
var t = this;
this.data = {
};
return this.data;
}
});
module.exports = Store;
顺序
首先执行store里的getInitialState,
再执行react的componentDidMount,如果在componentDidMount里执行console.log(this.state),会输出空的state,render里console.log的话也是同样效果。
当DB.Gate.getInitData()执行完后,会更新state,但是componentDidMount不会执行第二遍,但是render里的console.log()会输出新的state。