javascript - Http PUT 删除未更改的数据
问题描述
我正在尝试编辑 JSON 班次数据库。我正在使用 React 编写 Javascript。这是我对 PUT 语法的理解:
const editShift = async (changed, id) => {
const res = await fetch(`http://localhost:5000/shifts/${id}`, {
method: 'PUT',
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify(changed)
})
const data = await res.json()
setShifts([...shifts, data])
}
数据.json:
{
"shifts": [
{
"title": "test",
"startDate": "2018-06-25T07:30:00.000Z",
"endDate": "2018-06-25T08:00:00.000Z",
"allDay": false,
"id": 1
},
{
"title": "test2",
"startDate": "2018-06-28T07:30:00.000Z",
"endDate": "2018-06-28T08:00:00.000Z",
"allDay": false,
"id": 2
}
]
}
结果是新班次将仅保留已更改的字段并删除其余字段。任何想法为什么?
解决方案
要获得以前的班次,您应该在 setShifts 中使用回调,例如:
setShifts(prevShifts => ([...prevShifts, data]))
推荐阅读
- google-chrome - 如何在使用 manifest v3 制作的 chrome 扩展中使用 Web 套接字显示实时数据?
- vbscript - 如何在 ?s 所在的位置写入文件名和父文件夹名称
- ldap - ApacheDS LDAP 无法在 Centos7 上启动
- postgresql - 用于逻辑备份的 Zalando Postgres 操作员配置问题
- r - 通过 StMoMo 的 SPO 模型
- python - 使用快速排序按频率对元素进行排序:如何按大小对相同频率的元素进行排序?
- linux - 为什么 SaltStack 执行堆栈格式不正确?
- amazon-web-services - AWS Cognito 中每个用户是否有并发会话限制?
- apache-kafka - OpenWhisk 向 Kafka 发送消息超时
- java - Java Jersey Cient 中的字段套管问题