По идее, ваш компонент понятия не имеет, нужно или нет загружать данные с сервера. Об этом знает только
store. Поэтому компонент должен лишь запрашивать данные у
store, но при этом уметь понимать, что в ответ получены именно данные и тогда отрисовывать обычный контент, или что в ответ получена информация о том, что данные загружаются с сервера и тогда отрисовывать другой контент (например, с иконкой и сообщением о загрузке).
Примерно так:
class SomeComponent {
...
componentDidMount() {
Store.addListener("DATA_CHANGED", this.handleChanged)
Store.addListener("DATA_LOADED", this.handleLoaded)
}
...
handleLoaded(){
// just force rendering (you can do something smart beforehand though)
this.forceUpdate()
}
...
renderContent(){
// your usual render code
...
}
renderLoading(){
return <Icon type="spinner" spin />
}
render(){
if(Store.isLoading()){
return this.renderLoading()
} else {
return this.renderContent()
}
}
}