我正在使用react和meteor,我无法一次从服务器获取数据。组件正在流中获取数据,并且多次调用组件的渲染函数。
这是我用来通过mixin从客户端内部的服务器上获取帖子的代码。
getMeteorData() {
return {
posts: Posts.find({}, {sort: {createdAt: -1}}).fetch()
}
},
截至目前,这是从服务器获取所有帖子(其中只有大约20个)
如何从服务器一次获取数据,因此它不会流式传输并多次调用渲染功能?
答案 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
);
}
}