1. ホーム
  2. javascript

[解決済み] Vuexです。アクションからゲッターを呼び出す

2023-01-09 14:22:48

質問

ディスパッチ/アクションの内部でゲッターを呼び出す方法はありますか?

mutations: {
    setData(state, data) {
        state.data = data;
    }
}
actions: {
    sendDataToServer({ commit }, payload) {
        // call getter (data) and assign to variable
        // do async functions from the data returned
    }
},
getters: {
    getAppData: state => () => {
        return state.data;
    }
}

では、ベストプラクティスは何でしょうか?ミューテーションを使用して状態を変更し、状態を取得してアクションに渡し、アクションが非同期関数を実行するのか、それとも私の実装を再構築する必要があるのでしょうか?

変異を呼び出す -> ゲッターでデータを取得する -> アクションを呼び出す

または

アクションですべてを行う(アクションで変異を行い、ゲッターを必要としないアクション/asyncメソッドを行う)?

どのように解決するのですか?

コミットだけでなく、アクションにはデフォルトで以下のようなパラメータが注入されます。 dispatch , gettersrootGetters . なので、単純に書けばいいのです。

sendDataToServer({ commit, getters }, payload) と書くだけで、ゲッターにアクセスできます。