Meteor 1.3でいくつかのコードをES6 + React構文に切り替える。コンポーネントはMeteorデータを取得する必要があるので、getMeteorData()を置き換えるためにcreateComponentを使用しています。問題は、古いgetMeteorDataがコンポーネントからの状態を使用していて、createContainerコンポーネントによってアクセスされていないことです。子コンポーネントから状態が必要な流星データの扱い方は?
旧コード:状態にアクセスしようとしているので、
Component = React.createClass({
mixins: [ReactMeteorData],
getMeteorData() {
var mo = this.state.currentMonth;
var start = newDate(moment(mo).startOf('month'));
return {
events: collections.events.find({
$or: qwry,
startDate: { $gte: start },
endDate: { $lte: end }
}).fetch(),
}
},
render() {
...
}
});
新しいコードは、これまで
class Component = React.Component {
constructor(props) {
super(props);
}
render() {
...
}
}
export default createContainer(({params}) => {
var mo = this.state.currentMonth;
var start = newDate(moment(mo).startOf('month'));
return {
events: collections.events.find({
$or: qwry,
startDate: { $gte: start },
endDate: { $lte: end }
}).fetch(),
}
}, Component);
エラーを取得 "未定義のcurrentMonthを得ることができません"。助言がありますか?
は...親が子供の状態を保持し、小道具としてそれを渡し、それは他の方法で回避する必要があり、子から親にそれを送信しないようにしてください複数のコンポーネント上のドキュメントを反応させる: で反応しますデータは所有者から所有者のコンポーネントに小道具を介して流れます。https://facebook.github.io/react/docs/multiple-components.html – JordanHendrix
ええ、私はそれを認識していますが、私は変換する最良の方法を見つけようとしていますこれまでに処理されていた方法に基づいて新しい形式に変換します。現在のコードで "mo"変数を取得する方法を完全に再作成する必要があるかどうか、または以前はgetMeteorDataでコンポーネントの状態を使用していたコンポーネントの回避策があるかどうかを判断しようとしています。 – ebrillhart
なぜ、getMeteorData関数をreact.Componentの内部に置くことができないのですか?それでいいんだよ – JordanHendrix