认证后,meteorjs反应动作

时间:2016-05-29 21:39:27

标签: meteor reactjs onload account

我有以下反应组件将数据传递给另一个组件:

export default class App extends TrackerReact(Component){

 getUserFrameData(){
   return (FrameCollection.find().fetch());
 }
 render(){
   return(
     <div className="main-container">
      <Frames
        data={this.getUserFrameData()}
       />
</div>
);
}
}

现在我希望我的帧组件在组件初始化时执行操作。

export default class Frames extends Component{
   componentDidMount(){
      console.log(this.props.data);
   }

   render() {...}

  }

但是我只在加载时得到空数据。我认为这是因为我使用订阅和登录系统。那么我怎么能告诉我的Frames组件要等到所有内容都被加载&#34;?

1 个答案:

答案 0 :(得分:0)

使用订阅对象的ready方法。

constructor() {
  super();
  this.state = {
    sub: Meteor.subscribe('myPublication')
  }
}

render() {
  if (!this.state.sub.ready()) return <p>Loading...</p>;
  return ...
}

http://docs.meteor.com/api/pubsub.html#Subscription-ready