meteor/react が初めてなので、状態変数を初期化する方法がわかりません。
私の問題は、私が取得したいということです
- react-meteor-data からの createContainer による私の mongo コレクション (ここで説明されているように)、
- 初期化された小道具を使用して状態変数を初期化します
しかし、コンストラクターの小道具は空です。「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);