【问题标题】:NuxtJs Computed property "isLoggedIn" was assigned to but it has no setterNuxtJs 计算属性“isLoggedIn”已分配给但它没有设置器
【发布时间】:2020-10-23 07:23:09
【问题描述】:

由于某种原因,无论我尝试什么,我都会不断收到此错误。

这就是我获取和更新计算属性的方式

  computed: {
    isLoggedIn() {
    return this.$store.state.user.isLoggedIn;
   }
  },
  methods: {
   handleAuthenticate(value) {
     this.$store.commit("user/authenticate", value);
   }
  }

我已经在这里查找过类似的答案,但这并不能解决问题

computed: {
  isLoggedIn: {
    get() {
      return this.$store.state.user.isLoggedIn;
    },
    set(newValue) {
    this.$store.commit("user/authenticate", newValue);
   }
  }
},

我想知道这是不是因为我使用的是 Nuxt 而不是普通的 Vuejs。我按照 Nuxt 官方文档中的示例进行操作,但每次调用 handleAuthenticate 方法时仍然出现错误:

https://nuxtjs.org/examples/vuex-store/ https://codesandbox.io/s/github/nuxt/nuxt.js/tree/dev/examples/vuex-store?from-embed

这是我当前用户状态和突变的结构

state.js

export default () => ({
  isLoggedIn: false
})

mutations.js

export default {
 authenticate(state, value) {
 state.isLoggedIn = value;
 }
}

getters.js

   export default {
    isLoggedIn(state) {
     return state.isLoggedIn
    }
   }

我不完全确定问题是什么,因为我按照示例进行操作。也许我错过了什么。任何帮助,将不胜感激。谢谢!

【问题讨论】:

  • 如果您正在使用 nuxt-auth 包auth.nuxtjs.org,请告诉我?
  • @ATULKUMARSINGH 我没有使用 nuxt-auth。现在我只是在测试它。带按钮切换。我已经修好了。所以我会发布我的答案。

标签: javascript vuex nuxt.js


【解决方案1】:

对于那些遇到类似问题的人。原来我收到了错误,因为我正在使用带有 v-model 属性的isLoggedIn

 <v-navigation-drawer
  v-model="isLoggedIn"
  :mini-variant="miniVariant"
  :clipped="clipped"
  fixed
  app
>

</v-navigation-drawer>

我通过返回 set 方法的值来修复它

isLoggedIn: {
  get() {
    return this.$store.state.user.isLoggedIn;
  },
  set(val) {
    return val;
  }
}

【讨论】:

    猜你喜欢
    • 2018-09-26
    • 2019-05-21
    • 2020-11-07
    • 2020-10-04
    • 2018-11-02
    • 2019-02-16
    • 2018-02-16
    • 2019-08-01
    • 2020-07-09
    相关资源
    最近更新 更多