使用提取 API 发布到服务器



im 试图在我的服务器上将帖子的收藏夹状态更改为truefalse,但我一遍又一遍地遇到同样的问题。 我单击收藏夹按钮,果然收藏夹状态发生了变化。 但是当我再次单击它时,没有任何反应,没有任何变化。 然后,如果我删除静态缓存并单击收藏夹按钮,它确实会更改收藏夹状态,但仅第一次。基本上每次我需要更改状态时,我都必须删除缓存.当我尝试向服务器添加评论时也会发生同样的事情。这是我将收藏夹添加到服务器的代码

static setFavorite() {
const id = self.restaurant.id;
const fav_state = self.restaurant.is_favorite;
const fav_div = document.getElementById('fav_div');
let image = document.getElementById('fav_img');
console.log("fav", fav_state);
if (fav_state == 'true') {
DBHelper.toggleFavorite(id, false);
} else {
DBHelper.toggleFavorite(id, true);
}
}
static toggleFavorite(id, value) {
fetch('http://localhost:1337/restaurants/' + id + '/?is_favorite=' + value,
{
method: 'POST',
headers: {
"Content-Type": "application/json; charset=utf-8",
},
value: JSON.stringify(value)
})
.then(r => r.json())
.then(res => console.log(value));
}

感觉这里缺少一些代码。看起来 setFavorite(( 函数从self.restaurant.is_favorite中获取fat_state并将该值传递给toggleFavorite。但是您提供的代码中没有任何内容显示如何修改self.restaurant.is_favorite

我不确定在您的代码中您是否忘记将其从true翻转到false以及从false翻转到true.

还有一个旁注(为了在你的代码中更好的javascript( 不要使用 ==true,也许可以尝试重构代码以进行严格的比较(=== true(以避免任何副作用。 也不确定为什么您的代码中需要let image以及您提供的图像相关代码。

最新更新