0
これは私を困惑させてしまいました。私はMongoのサブスクリプションがクエリの準備ができているかどうかを聞くためにTracker.autorun関数を使用しています(この前の提案ではMeteor subscribe callback)。これは、メテオサブスクリプションが準備ができていることを示す、数秒後にトリガするという点ではうまくいくようです。しかし、Tracker.autorun関数内で状態をチェックしようとすると、this.stateは未定義です。私は明白な何かを欠いていますかこれにはより良いパターンがありますか?私はこれらの問題のますます多くを実行してきたとreduxに移動することを熟考し始めて...任意のアドバイスが大いに感謝!Tracker.AutorunのReact状態にアクセスできないのはなぜですか?
export default class BulkMapWrapper extends TrackerReact(React.Component) {
constructor() {
super();
this.state = {
}
}
componentDidMount(){
const subscription = Meteor.subscribe("allAuthors",{sort: {_id:-1}})
this.state = {
ready: subscription.ready(),
authorData: subscription
}
Tracker.autorun(function(){
if (subscription.ready()) {
console.log("the subscription is ready");
console.log(this.state) //this is undefined
}
グラハンさんありがとうございます、これは完璧に動作します!これは、矢印関数が 'this'の正しいコンテキストを設定しているからだと思います。https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions – ElJefeJames
あなたを助けてくれてうれしいです。うん、それは本当です、私はこの情報を見逃して申し訳ありません。また、クライアントからMeteorメソッドを呼び出し、その結果をコンポーネントの状態として設定したい場合にも役立ちます。次に、矢印Funktionを使用します。 – grahan