请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师为什么会报Computed property "toggle" was assigned to but it has no setter这种错误

// book.js
export default {
    state: {
        fileName: 'Biomedicine|2014_Book_Self-ReportedPopulationHealthA',
        toggle: 0
    },
    mutations: {
        'CHANGEFILENAME': (state, fileName) => {
            state.fileName = fileName
        },
        'CHANGETOGGLE': (state, toggle) => {
            state.toggle = toggle
        }
    },
    actions: {
        changeFileName: ({commit}, fileName) => commit('CHANGEFILENAME', fileName),
        changeToggle: ({commit}, toggle) => commit('CHANGETOGGLE', toggle)
    }
}
//getters.js
export default {
    fileName: state => state.book.fileName,
    toggle: state => state.book.toggle
}
//index.js
import Vue from 'vue'
import Vuex from 'vuex'
import book from './modules/book'
import getters from './getters'

Vue.use(Vuex)

export default new Vuex.Store({
    modules: {
        book
    },
    getters
})

然后我在computed里面使用…mapGetters([‘toggle’])混入,调用方法使用了this.$store.commit(‘changeToggle’, 0),结果就报错了,但是我百度了下,发现只要不使用混入采用如下写法就没有问题,这是为什么?

toggle: {
	get: function () {
		return this.$store.state.book.toggle
	},
	set: function (toggle) {
		this.$store.state.book.toggle = toggle
	}
},

正在回答 回答被采纳积分+3

2回答

提问者 慕后端3187812 2019-04-19 00:48:25

貌似把大写的CHANGETOGGLE和CHANGEFILENAME改成小写驼峰就没事了··

0 回复 有任何疑惑可以回复我~
Sam 2019-04-18 23:54:43

你好,可以提供出错的完整源码吗?

0 回复 有任何疑惑可以回复我~
  • 提问者 慕后端3187812 #1
    ··怎么发给您?
    回复 有任何疑惑可以回复我~ 2019-04-18 23:58:49
  • Sam 回复 提问者 慕后端3187812 #2
    上传git后发地址上来就行了
    回复 有任何疑惑可以回复我~ 2019-04-18 23:59:12
  • 提问者 慕后端3187812 #3
    ····sam老师,我的代码貌似又好了···神仙一般的代码
    回复 有任何疑惑可以回复我~ 2019-04-19 00:11:09
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信