私はlodashを使用して関数呼び出しをデバウンスしていますが、なぜ私の期待通りにthis
の値がスコープを継承していないのだろうと思います。Vue watch [fat arrow scope]間違ったコンテキストを提供しています
これらは、私のVueコンポーネントの関連部分です。上記の場合は動作しません
import debounce from 'lodash/debounce';
watch: {
query: debounce(() => {
this.autocomplete();
}, 200, {
leading: false,
trailing: true
}),
私this
値は、Vueのコンポーネントを指すのではなく、このようなオブジェクトを示していないので:
Object
__esModule: true
default: Object
__proto: Object
はコンテキストを継承すると仮定し、私の矢印構文ではないですthis
?
query: debounce(function test() {
this.autocomplete();
}, 200, {
leading: false,
trailing: true
})
あり、このための簡単な答えは、おそらくですが、私は誰かがここで私を助けることができる期待しています:
次は正常に動作しているようです。
使用定期的な機能を使用すると、Vueの 'this'コンテキストを必要とする場合。あなたはVueのドキュメントを通して見つけることができます。 – wostex
あなたはおそらく矢の機能がどのように働くかを読んでおくべきでしょう。例えば。 http://exploringjs.com/es6/ch_arrow-functions.html – nils
@nils彼らは私が期待していたとおりに動作します.Vueでは明らかに動作しません。以下の答えで詳細を説明します。 –