Как управлять потоком метеорных данных с помощью реакции?

Я использую реакцию и метеор, у меня возникают проблемы с одновременным получением данных с сервера. Компонент получает данные в потоке, и функция рендеринга компонента вызывается несколько раз.

Это код, который я использую для получения сообщений с сервера на клиенте внутри реагирующего компонента с миксином.

getMeteorData() {
        return {
            posts: Posts.find({}, {sort: {createdAt: -1}}).fetch()
        }
    },

На данный момент он получает все сообщения с сервера (там всего около 20)

Как получить данные с сервера сразу, чтобы они не транслировались и не вызывали функцию рендеринга несколько раз?


person Camron_Godbout    schedule 16.12.2015    source источник


Ответы (1)


Добавьте дополнительную проверку, если загрузка данных выполняется, например:

  mixins: [ ReactMeteorData ],
  getMeteorData() {
    var subscription = Meteor.subscribe( 'posts' );

    return {
      isLoading: !subscription.ready(),
      posts: Posts.find({}, {sort: {createdAt: -1}}).fetch()
    };
  },
  render() {
    if ( this.data.isLoading ) {
      return <div>Loading...</div>;
    } else {
      return (
        // now we have data and render once
      );
    }
  }
person Mark Uretsky    schedule 16.12.2015