我有一个 Vue 商店,其中包含以下内容
store.js
import 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 组件看起来像这样
支持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
指令绑定到复选框类型的输入字段。
我想要达到的目标:
当我切换复选框时,supps.logged
应该在和之间切换true
,false
但是supplementStore.logged
应该保持不变(因为我没有将它绑定到我的输入字段)。
我在我的观察
Vue Devtools
:
当我切换复选框时,两个supps.logged
ANDsupplementStore.logged
都在同步切换,即它们都在 true 和 false 之间同步切换,而我只想supps.logged
切换。
谁能帮我?