我有一家vue商店,其中有以下商店store.jsimport Vue from 'vue'import Vuex from 'vuex'const state = { supplementStore: {} }const actions = { getDataFromApi ({dispatch, commit}) { APIrunning.then(response => { commit('SET_SUPPLEMENT', response) }) }}const mutations = { SET_SUPPLEMENT (state, data) { state.supplementStore= data }}const foodstore = { namespaced: true, state, actions, mutations}Vue.use(Vuex)export default new Vuex.Store({ modules: { foodstore }})我的Vue組件看起來像這樣支持<template> <input type="checkbox" v-model="supps.logged"></template><script>import {mapState, mapActions} from 'vuex'import store from './store'export default { data () { return { supps: [] } }, mounted () { this.supps = this.supplementStore }, computed: { ...mapState('foodstore', ['supplementStore']) }}</script>如您所見,我有一個稱為的組件級狀態supps,一旦它被賦值為supplementStore(即vuex狀態)mounted。mounted () { this.supps = this.supplementStore},supplementStore 從API獲取其值,它是一個JSON對象,看起來像這樣supplementStore = { logged: true}因此,在Supp.vue安裝我的組件時,我的本地狀態supps將變為supps = { logged: true }supps(Supp.vue)使用v-model指令綁定到類型為checkbox的輸入字段。我要實現的目標:當我切換復選框時,supps.logged應在true和之間切換,false但supplementStore.logged應保持不變(因為我尚未將其綁定到我的輸入字段)。我觀察到的是Vue Devtools:當我切換復選框時,兩個supps.loggedANDsupplementStore.logged都在同步切換,即兩個都在true和false之間同步切換,而我只想supps.logged切換。誰能幫我?
為什么即使我尚未將vuex狀態綁定到任何html輸入元素,我的vuex狀態也會在更改組件級別
飲歌長嘯
2021-05-18 17:18:34