使用背景:购物车页面的下边栏设置了一个全选按钮,点击可以选择购物车的全部商品,再次点击则会取消选择。因为下边栏是一个子组件,所以需要向父组件发送信息。
错误写法:因为即使被mapState包裹也不会影响computed的正常功能,所以我通常是全部包裹住的,但是此时出现错误Computed property "checked" was assigned to but it has no setter.
computed: mapState({
list:'cart_list', //商品详情信息
checked: {
get() {
return this.value
},
set(val) {
this.$emit('input', val)
}
}
}),
解决办法:只展开需要从list中读取的数据就行了,其他照常。
computed: {
...mapState({
list:'cart_list', //商品详情信息
}),
checked: {
get() {
return this.value
},
set(val) {
this.$emit('input', val)
}
}
},