...mapState() 中定义的计算属性没有设置器
Posted
技术标签:
【中文标题】...mapState() 中定义的计算属性没有设置器【英文标题】:Computed property defined within ...mapState() has no setter 【发布时间】:2019-11-01 01:22:20 【问题描述】:在我的Nuxt
应用程序中,我正在使用从mapState
帮助程序中的存储检索的数据初始化计算属性,但是我还需要在某些用户操作时修改这些计算属性的值。
好吧,我不能这样做,因为我在使用该代码时收到“没有设置器”错误:
computed:
...mapState(
monRaw: state => state.currentWeek
我尝试定义 setter 无济于事,代码也没有太大意义:
computed:
...mapState(
get: function (state)
return state.currentWeek
,
set: function (state, data)
state.currentWeek = data
当使用 mapState() 定义时,是否根本不可能更改计算属性的值?
【问题讨论】:
看看:***.com/questions/44272405/mapstate-with-setter 谢谢,您的网址中确实存在正确答案 【参考方案1】:mapState 是一个方便的函数,它提供了 vuex 存储中相同键下的计算属性的映射。它提供对这些属性的只读访问。由于您想使用更新,您将不得不放弃 mapstate 并定义您自己的计算 getter/setter,如下所示:
computed:
currentWeek:
get()
return this.$store.state.currentWeek;
,
set(v)
this.$store.commit('updateCurrentWeek', v);
...
显然updateCurrentWeek
必须在您的 vuex 存储的突变部分中定义。
【讨论】:
以上是关于...mapState() 中定义的计算属性没有设置器的主要内容,如果未能解决你的问题,请参考以下文章
在 Vuex 中使用带有 mapState、mapMutation 的 get/set Computed 属性