React.jsでpromise使ってthis.emitChange()などが動かない時の対処法
最近React.jsを触り始めてちょっとハマったのでメモ。
Ajaxの処理でPromiseを使ってそのコールバック内でthisを使うとthisが想定してるthisじゃなくなりますよという話なのでぶっちゃけReact.jsもPromiseも直接関係はないんですが、自分はその組み合わせで何回も踏んだので・・・調子に乗ってcoffeescriptでthisの代わりに@使ったりしてたので余計気づきにくかったです。
SPONSERD LINK
例えばこんなコード
これは動かないです。@emitChange()
はthis.emitChange()
で、ここのthisはもうSomeStoreではなくなっちゃってるからですね。
なのでthisではなくSomeStoreを直接呼ぶ必要があります。
こんな感じ
まあ気づいちゃえば当たり前なんですが、2日後におんなじことやって5分ぐらい悩んだりしたので残しときました。
「最短で学ぶReactとReduxの基礎から実践まで」10%OFFクーポン
UdemyでReactとReduxの動画講座を公開しています。
このブログの読者限定クーポンを使って、基礎から実践までを学びましょう。
「最短で学ぶReactとReduxの基礎から実践まで」10%OFFクーポン
UdemyでReactとReduxの動画講座を公開しています。
このブログの読者限定クーポンを使って、基礎から実践までを学びましょう。
SPONSERD LINK