【发布时间】:2018-12-03 08:47:38
【问题描述】:
我有一个组件,用于在收藏夹中添加/删除项目。它工作得很好,但用户看不到他/她是否将项目添加到收藏夹(如果项目被收藏,我会显示一个星形图标,如果不是,我会显示一个空图标)。我怎样才能被动地做到这一点?如果用户单击它,我希望我的图标更改其类别。
这是我的代码:
组件:
<template>
<span :class="isFavorite
? 'mdi mdi-star favorite'
: 'mdi mdi-star-outline'"
class="favorite-item-icon"
@click="isFavorite ? deleteFromFavoriteItems(itemId) : addToFavoriteItems(itemId)">
</span>
</template>
<script>
export default {
import { mapGetters, mapActions } from 'vuex';
props: ['itemId', 'isFavorite'],
methods: {
...mapActions(['addToFavoriteItems', 'deleteFromFavoriteItems']),
},
};
</script>
父组件的v-for列表中的组件:
...
<favorite-label :itemId="item.id" :isFavorite="item.is_favourite" />
...
在我的店里:
addToFavoriteItems({ commit }, itemId) {
http
.post(`${config.api}api/v1/items/favourite-save`, {
item_id: itemId,
});
deleteFromFavoriteItems({ commit }, itemId) {
http
.post(`${config.api}api/v1/items/favourite-delete`, {
item_id: itemId,
});
【问题讨论】:
标签: javascript vue.js reactive-programming