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 Typescript click.native '无法读取 null 的属性'测试''