Ответы пользователя по тегу Flux
  • React и Flux: как получить данные при загрузке страницы?

    @Roman_Kh
    По идее, ваш компонент понятия не имеет, нужно или нет загружать данные с сервера. Об этом знает только 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()
          }
      }
    }
    Ответ написан
    Комментировать