Доброе утро, все!Флюс для инициализации Магазин
У меня есть компонент Component (вид), который зависит от Магазина, который, в свою очередь, зависит от того, что какое-то состояние вытащили из кругового путешествия на сервер.
Что я хочу понять, если существует общий шаблон для инициализации состояния магазина.
Прямо сейчас я думаю, что я хотел бы сделать что-то вроде:
var SomeView = React.createClass({
componentWillMount: function() {
SomeStore.addChangeListener(this._onChange);
// Go and tell this thing we want to initiliaze our
// state ahead of time. My worry here is obviously
// that when state is updated this fires again so I'd
// need to have some knowledge that the store has been
// initialized which seems very (very) kludgey
SomeActions.init();
},
render: function() {
// Here i'd want to see if I had items available for
// rendering. If I didn't I'd drop on a loading dialog
// or if I did I could render the detail.
},
_onChange: function() {
// this.setState...
}
});
var SomeActions = {
init: function() {
AppDispatcher.dispatch({
actionType: SomeConstants.INIT
});
}
};
var SomeStore = assign({}, EventEmitter.prototype, {
init: function() {
$.get('/round/trip', function(data) {
this.emitChange();
}).bind(this);
}
emitChange: function() {
this.emit(CHANGE_EVENT);
},
addChangeListener: function(callback) {
this.on(CHANGE_EVENT, callback);
}
});
AppDispatcher.register(function(action) {
switch(action.actionType) {
case SomeConstants.INIT:
SomeStore.init()
break;
default:
}
});
Я абсолютно уверен, должно быть лучше.
Спасибо @ Roman - можете ли вы рассказать бит о том, что API будет запускать магазин. Я могу запустить действие в модуль Web Api, а затем, после того, как я завершил отправку результатов в оба конца, возвращайтесь в магазин, а затем сохраните это хранилище. – Cory
@Cory Точно. Просто имейте в виду, что api также должен обновить магазин через действие. – Roman
Роджер, что. Спасибо за подсказку и ссылки. Сегодня я отправлю это. – Cory