【问题标题】:Computed property defined within ...mapState() has no setter...mapState() 中定义的计算属性没有设置器
【发布时间】:2023-03-02 21:19:01
【问题描述】:

在我的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() 定义时,是否根本不可能更改计算属性的值?

【问题讨论】:

标签: vue.js vuex nuxt.js


【解决方案1】:

mapState 是一个方便的函数,它提供了 vuex 存储中相同键下的计算属性的映射。它提供对这些属性的只读访问。由于您想使用更新,您将不得不放弃 mapstate 并定义您自己的计算 getter/setter,如下所示:

computed: {
  currentWeek: {
    get() {
      return this.$store.state.currentWeek;
    },
    set(v) {
      this.$store.commit('updateCurrentWeek', v);
    } 
  }
...
}

显然updateCurrentWeek 必须在您的 vuex 存储的突变部分中定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-22
    • 2019-05-21
    • 2020-03-27
    • 2022-01-14
    • 2020-07-09
    • 2020-10-04
    • 2018-01-17
    • 2018-09-26
    相关资源
    最近更新 更多