Computed property was assigned to but it has no setter
使此功能适用于myVal的正确语法/钩子是什么?
我的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <v-item-group v-model="myVal" ... import { mapActions, mapGetters } from 'vuex'; export default { computed : { ...mapActions({ myVal: 'myModulePath/setMyVal' }), ...mapGetters({ myVal: 'myModulePath/getMyVal' }), }, } |
商店看起来像:
1 2 3 4 | actions: { setMyVal({commit}, value){commit('someMutation',value);} getters: { getMyVal: state => { return state.myVal;} |
我不确定如何接线,因此\\'setter \\'有效,错误消息消失。
我也尝试这样做无济于事:
1 | ...mapState('myModulePath', ['myVal']) |
您需要定义一个用
1 2 3 4 5 6 7 8 | export default { computed : { myVal: { get() { return this.$store.getters.getMyVal; }, set(newValue) { this.$store.dispatch('setMyVal', newValue); } } }, } |
您需要告诉vue组件在为计算属性分配新值时该怎么做
1 2 3 4 5 6 | computed: { myVal: { get: () => this.$state.store.getters.myModulePath.getMyVal, set: (value) => this.$state.commit('someMutation', value ) } } |
请注意,我使用二传手而不是操作。在计算的属性设置器中使用操作不是一个好主意,因为操作通常是异步的,并且可能在以后调试计算的属性时引起头痛。