NuxtJs 计算属性“isLoggedIn”已分配给但它没有设置器

Posted

技术标签:

【中文标题】NuxtJs 计算属性“isLoggedIn”已分配给但它没有设置器【英文标题】:NuxtJs Computed property "isLoggedIn" was assigned to but it has no setter 【发布时间】: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。现在我只是在测试它。带按钮切换。我已经修好了。所以我会发布我的答案。 【参考方案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;
  

【讨论】:

以上是关于NuxtJs 计算属性“isLoggedIn”已分配给但它没有设置器的主要内容,如果未能解决你的问题,请参考以下文章

胜负已分:Proxy VS Object.defineProperty

NuxtJS Auth 错误与属性不存在

NuxtJS Typescript click.native '无法读取 null 的属性'测试''

NuxtJS Apollo 模块 TypeError:无法读取未定义的属性“$apolloHelpers”

WordPress已分页

UIScrollView 具有“惯性”但已分页。