在做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,这样啰嗦了一些,但是效果实现了,优化后面再说吧