property “nickName“ was assigned to but it has no setter.

21 篇文章 0 订阅
11 篇文章 0 订阅
在Vue.js应用中,开发者遇到了在Vuex中存储登录信息并在计算属性中获取的问题。计算属性使用`mapState`映射了Vuex状态,但触发了Vue警告,提示没有设置setter。解决方法是为每个计算属性定义getter和setter,即使setter为空。通过这种方式,避免直接修改计算属性导致的语法错误,实现了数据的正确显示。
摘要由CSDN通过智能技术生成

在做uniapp的時候,为了方便保存登陆信息,我把数据存在vuex和stanger里面

在其他页面获取的时候我用的计算属性,watch里面我没拿到,一开始的映入方式是这样的

import {  mapState  } from 'vuex';

	computed: {
		...mapState(['userId','nickName','avatarUrl'])
	}, 

 [Vue warn]: 
Computed property "nickName" was assigned to but it has no setter. 
[Vue warn]: Computed property "avatarUrl" was assigned to but it has no setter.

数据展示出来了,就是包错了,
意思就是在计算属性中引用的数据, 自己改变了,但是没有setter属性,
因为计算属性要改变数据需要用在setter中改变,属于语法错误,

解决方案,
	computed: {
		// ...mapState(['userId','nickName','avatarUrl'])
		userId: {
			get(){	return this.$store.state.userId;	},
			set() {	}
		}, 
		nickName: {
			get(){	return this.$store.state.nickName;	},
			set() {	}
		}, 
		avatarUrl: {
			get(){	return this.$store.state.avatarUrl;	},
			set() {	}
		}
	}, 

我没有测试其他方案,比如用watch,这样啰嗦了一些,但是效果实现了,优化后面再说吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值