由于我对meteor/react还不熟悉,因此无法确定如何初始化我的状态变量。
我的问题在于:
1. 我想通过react-meteor-data中的createContainer获取我的mongo集合(如文档所述)。 2. 使用initialized prop来初始化状态变量。
但是,在构造函数中prop为空。只有当"gotClicked"函数被调用时,prop.allLists才会填充来自mongo的数据。
有人知道原因吗?我猜测数据是异步加载的,因此在构造函数中数据尚不可用。
如何更好地获取数据?
我的问题在于:
1. 我想通过react-meteor-data中的createContainer获取我的mongo集合(如文档所述)。 2. 使用initialized prop来初始化状态变量。
但是,在构造函数中prop为空。只有当"gotClicked"函数被调用时,prop.allLists才会填充来自mongo的数据。
有人知道原因吗?我猜测数据是异步加载的,因此在构造函数中数据尚不可用。
如何更好地获取数据?
import React, {Component, PropTypes} from 'react';
import { createContainer } from 'meteor/react-meteor-data';
import {AllLists} from '../api/alllists.js'
export default class MyList extends Component {
constructor(props) {
super();
console.log(props.allLists)
console.log(this.props.allLists)
//allLists is empty
this.state = {
lists: props.allLists
}
}
gotClicked(){
console.log(this.props.allLists)
//allLists is filled
}
render() {
return (
<div className="container" onClick={this.gotClicked.bind(this)}>
</div>
);
}
}
MyList.propTypes = {
allLists: PropTypes.string.isRequired
}
export default createContainer(() => {
return {
allLists: AllLists.find({}).fetch()
};
}, MyList);