点击标签实现数据库和页面内容同步更新,现在实现了数据库更新页面需要重新加载后才能显示更新后的内容,试过setdata也不行,请教一下各位大佬!
data: {
like: 'like-o',
}
likeToggle(e) {
const id = e.currentTarget.dataset.id;
console.log(id)
db.collection('todayrec').doc(id).get({
field: {
like: true
},
success: function (res) {
console.log(res.data)
const newLikeValue = res.data.like === 'like-o' ? 'like' : 'like-o';
db.collection('todayrec').doc(id).update({
data: {
like: newLikeValue
},
success: function (res) {
console.log('记录更改:', res)
},
fail: function (err) {
console.error('记录更新失败:', err)
}
})
},
fail: function (err) {
console.error('记录查询失败:', err)
}
})
}
});
<van-icon data-id="{{item._id}}" :data-index="index" bind:tap="likeToggle" class="photo_item_container_like"
name="{{item.like}}" size="60rpx" color="white" /></view>
setData咋写的 也看不见
likeToggle(e) {
const id = e.currentTarget.dataset.id;
console.log(id);
const that = this;
db.collection('todayrec').doc(id).get({
field: {
like: true
},
success: function (res) {
console.log(res.data);
const newLikeValue = res.data.like === 'like-o' ? 'like' : 'like-o';
db.collection('todayrec').doc(id).update({
data: {
like: newLikeValue
},
success: function (res) {
console.log('记录更改:', res);
const newData = that.data.todayrec.map(item => {
if (item._id === id) {
item.like = newLikeValue;
}
return item;
});
that.setData({
todayrec: newData
});
},
fail: function (err) {
console.error('记录更新失败:', err);
}
});
},
fail: function (err) {
console.error('记录查询失败:', err);
}
});
}