我有以下反应组件将数据传递给另一个组件:
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;?
答案 0 :(得分:0)
使用订阅对象的ready
方法。
constructor() {
super();
this.state = {
sub: Meteor.subscribe('myPublication')
}
}
render() {
if (!this.state.sub.ready()) return <p>Loading...</p>;
return ...
}