如何通过反应来控制流星数据流?

时间:2015-12-16 06:34:08

标签: javascript meteor reactjs meteor-react

我正在使用react和meteor,我无法一次从服务器获取数据。组件正在流中获取数据,并且多次调用组件的渲染函数。

这是我用来通过mixin从客户端内部的服务器上获取帖子的代码。

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

截至目前,这是从服务器获取所有帖子(其中只有大约20个)

如何从服务器一次获取数据,因此它不会流式传输并多次调用渲染功能?

1 个答案:

答案 0 :(得分:2)

添加额外检查是否完成了数据加载:

  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
      );
    }
  }