web-dev-qa-db-ja.com

Vuexストアで特定の状態が変化したときにイベントを発行する

次の状態のvuexストアがあります。

_state: {
    authed: false
    ,id: false
}
_

コンポーネント内で、authed状態の変化を監視し、AJAX呼び出しをサーバーに送信します。さまざまなコンポーネントで実行する必要があります。

store.watch()を使用してみましたが、idまたはauthedのいずれかが変更されたときに発生します。また、プロパティを指定できないという点で_vm.$watch_とは異なります。私がこれをやろうとしたとき:

_store.watch('authed',function(newValue,oldValue){
  //some code
});
_

私はこのエラーを受け取りました:

_[vuex] store.watch only accepts a function._

どんな助けでもありがたいです!

12
ierdna

コンポーネントのauthed状態のゲッターを設定し、そのローカルゲッターを監視するだけです。

watch: {
  'authed': function () {
    ...
  }
}
24
Primoz Rome

または使用できます...

let suscribe = store.subscribe((mutation, state) => {
  console.log(mutation.type)
  console.log(mutation.payload)
})
// call suscribe() for unsuscribe

https://vuex.vuejs.org/api/#subscribe

12
Emiliano Díaz