有一个方法getCustomer(id)
,它从API返回JSON
{
"id": 29,
"name": "Rob",
"checkin_status": false,
}
字符串
我试图写一个update方法,它只改变那个使用fetch的客户的签入状态:
function checkIn(id) {
url = "http://127.0.0.1:8000/customers/update_customer/" + id
var data = new getCustomer(id);
for( var k = 0; k < data.length; ++k ) {
if( data[k]['job_checked_in'] == false ) {
console.log("job_checked_in is false");
data[k]['job_checked_in'] = true ;
}
else {
console.log('job_checked_in was true');
}
}
fetch(url, {
method: "POST",
body: JSON.stringify(data),
headers: {
'Content-type': 'application/json; charset=UTF-8'
}
})
.then(response => response.json())
.then(json => console.log(json))
}
型
但for循环似乎不起作用。
我如何修复它,或者当POST到API时,是否有更好的方法来替换JSON数组中的单个值?我尝试发布单个键/值对,而不是整个数组,它发布了,但它在服务器端不起作用。
1条答案
按热度按时间xn1cxnb41#
如果我理解正确的话,您希望更改用户的签入状态,该用户将id作为参数传递给checkIn函数。
首先,您没有检查要更新的用户是否必须与函数中传递的用户具有相同的id。
此外,您应该使用.findIndex()方法,而不是迭代数组,直到找到正确的用户:
字符串
然而,我不确定为什么你应该把整个数组发布到端点来只更新一个用户。了解服务器端端点是如何工作的以及为什么只发布一个用户不起作用会很有帮助。