使用背景:購物車頁面的下邊欄設置了一個全選按鈕,點擊可以選擇購物車的全部商品,再次點擊則會取消選擇。因爲下邊欄是一個子組件,所以需要向父組件發送信息。
錯誤寫法:因爲即使被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)
}
}
},