Vuex、計算されたプロパティは反応しません

Hesiod

各サブコンポーネント(および親コンポーネント)が共有プロパティを更新できる(vueX状態で保存する)状態をいくつかのコンポーネント(サブコンポーネント)間で共有しようとしています。

ここに小さな「再現方法」を作成しました。

Vue.component('urlQueryComponent', {
  template: '<div>object: {{pathQuery}}</div>',
  computed: {
    pathQuery () {
      return this.$store.state.urlQuery;
    }
  }
})

https://codepen.io/anon/pen/rvmLrZ?editors=1010

サブコンポーネントの状態を更新すると、変更が処理されないという問題があります。

VueXインスタンス:

const store = new Vuex.Store({
  state: {
    urlQuery:  {
      path: '',
      query: {}
    }
  },
  mutations: {
    pushQuery: (state, type) => {
      state.urlQuery.query[type.key] = type.value;
      console.log('urlQuery: ', state.urlQuery);
    },
    pushPath: (state, path) => {
      state.urlQuery.path = path;
    }
  },
  getters: {
    getUrlQuery: state => state.urlQuery
  }
})

そして親コンポーネント:

new Vue({
  el: '#app',
  store,
  methods: {
    changeType (type) {
      this.$store.commit('changeType', type);
    }
  }
})

編集:

振り返った後、前のコードは実際には私の問題を対象としていません。このフィドルは私の問題をより対象としています。

ソヴァリーナ

pushQueryミューテーションを次のように変更します

pushQuery: ({ urlQuery }, type) => {
  const key = type.key
  Vue.set(urlQuery.query, key, type.value)
  console.log('urlQuery: ', urlQuery);
}

動作するはずです(ここでフィドル

ソースVuex変異):

変更はVueのリアクティブルールに従いますVuexストアの状態はVueによってリアクティブになるため、状態を変更すると、状態を監視しているVueコンポーネントが自動的に更新されます。これは、プレーンなVueを使用する場合、Vuexの変異が同じ反応性の警告を受けることも意味します。

  1. 必要なすべてのフィールドを事前に使用して、ストアの初期状態を初期化することをお勧めします。

  2. オブジェクトに新しいプロパティを追加するときは、次のいずれかを使用する必要があります。 Vue.set(obj, 'newProp', 123)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

VueDOMは計算されたプロパティに反応しません

分類Dev

Vuexの状態はアクションによって更新されますが、計算されたプロパティが応答していません

分類Dev

Vuex:状態は更新されますが、計算されたプロパティは更新されません

分類Dev

Vuejsは動的に追加されたプロパティは反応しません

分類Dev

計算されたプロパティは入力属性を更新しません

分類Dev

Vuexミューテーションは状態を更新し、計算されたプロパティはマークアップの更新を反映しません

分類Dev

計算された@eachプロパティは更新されません

分類Dev

計算されたプロパティを使用するときにVuex $ storeプロパティが反応しない

分類Dev

Vuex-モジュールの状態に基づく計算されたプロパティはディスパッチ時に更新されませんか?

分類Dev

計算されたプロパティはルートパラメータでは機能しません

分類Dev

データ変数を変更しても、計算されたプロパティは更新されません

分類Dev

状態が変化しても、計算されたプロパティは更新されません

分類Dev

ネストされたプロパティはVueでは反応しません

分類Dev

このVueで計算されたプロパティが反応しないのはなぜですか?

分類Dev

Vuex-計算されたプロパティ "name"が割り当てられましたが、セッターがありません

分類Dev

Vuex:[Vue warn]:計算されたプロパティ "username"が割り当てられましたが、セッターがありません

分類Dev

VueとVuex:状態を変更するときに計算されたプロパティは呼び出されません

分類Dev

計算されたプロパティ名を使用する場合、setStateは機能しません

分類Dev

Vuejsとリクエスト:計算されたプロパティ関数はGETJSON値を表示しません

分類Dev

Vuex:計算されたプロパティは未定義を返します-asyc Axios

分類Dev

計算されたプロパティはフロントエンドで更新されません

分類Dev

VueJSのwindow.innerwidthに反応する計算されたプロパティ

分類Dev

emberjsに計算されたプロパティを実装できませんでした

分類Dev

配列の依存関係が変更された場合、計算されたプロパティは再計算されません

分類Dev

Emberの「observes」はアサーションエラーをスローしますが、計算されたプロパティはスローしませんか?

分類Dev

フロー:機能的な反応コンポーネントにデフォルトの小道具を使用する場合、「未定義の[1]を使用して計算されたプロパティにアクセスできません」

分類Dev

Vue-meta:metaInfoは計算されたプロパティにアクセスできません

分類Dev

Getter&Setterを使用して計算されたVueプロパティはWebpackでコンパイルされません

分類Dev

Vueの計算されたプロパティがウォッチをトリガーしていません

Related 関連記事

  1. 1

    VueDOMは計算されたプロパティに反応しません

  2. 2

    Vuexの状態はアクションによって更新されますが、計算されたプロパティが応答していません

  3. 3

    Vuex:状態は更新されますが、計算されたプロパティは更新されません

  4. 4

    Vuejsは動的に追加されたプロパティは反応しません

  5. 5

    計算されたプロパティは入力属性を更新しません

  6. 6

    Vuexミューテーションは状態を更新し、計算されたプロパティはマークアップの更新を反映しません

  7. 7

    計算された@eachプロパティは更新されません

  8. 8

    計算されたプロパティを使用するときにVuex $ storeプロパティが反応しない

  9. 9

    Vuex-モジュールの状態に基づく計算されたプロパティはディスパッチ時に更新されませんか?

  10. 10

    計算されたプロパティはルートパラメータでは機能しません

  11. 11

    データ変数を変更しても、計算されたプロパティは更新されません

  12. 12

    状態が変化しても、計算されたプロパティは更新されません

  13. 13

    ネストされたプロパティはVueでは反応しません

  14. 14

    このVueで計算されたプロパティが反応しないのはなぜですか?

  15. 15

    Vuex-計算されたプロパティ "name"が割り当てられましたが、セッターがありません

  16. 16

    Vuex:[Vue warn]:計算されたプロパティ "username"が割り当てられましたが、セッターがありません

  17. 17

    VueとVuex:状態を変更するときに計算されたプロパティは呼び出されません

  18. 18

    計算されたプロパティ名を使用する場合、setStateは機能しません

  19. 19

    Vuejsとリクエスト:計算されたプロパティ関数はGETJSON値を表示しません

  20. 20

    Vuex:計算されたプロパティは未定義を返します-asyc Axios

  21. 21

    計算されたプロパティはフロントエンドで更新されません

  22. 22

    VueJSのwindow.innerwidthに反応する計算されたプロパティ

  23. 23

    emberjsに計算されたプロパティを実装できませんでした

  24. 24

    配列の依存関係が変更された場合、計算されたプロパティは再計算されません

  25. 25

    Emberの「observes」はアサーションエラーをスローしますが、計算されたプロパティはスローしませんか?

  26. 26

    フロー:機能的な反応コンポーネントにデフォルトの小道具を使用する場合、「未定義の[1]を使用して計算されたプロパティにアクセスできません」

  27. 27

    Vue-meta:metaInfoは計算されたプロパティにアクセスできません

  28. 28

    Getter&Setterを使用して計算されたVueプロパティはWebpackでコンパイルされません

  29. 29

    Vueの計算されたプロパティがウォッチをトリガーしていません

ホットタグ

アーカイブ