繁体   English   中英

API Fetch 只更新一条数据

[英]API Fetch update only one data

如何通过 API 只更新一个数据? 我想从status: 4更改为status: 5

这是我的代码

export const cancelRequest = async id => {
 const response = await fetch(`API_URL/link/link/${id}`, {
  method: 'put',
  headers: {
    'Content-Type': 'application/json',
    Authorization: `Bearer ${Auth.getToken()}`,
   },
  });
  return getData(response);
};

通过另一个文件调用它

const onCancelRequest = async id => {
  let cancelItem = dataAll.filter(item => item.id == id);

  await TriggerRequestAPI.cancelRequest(id)
    .then(data => {
      data.json();
      cancelItem[0].status = 5;
      setIsAll(cancelItem);
  })
  .catch(error => console.log(error));
};

您需要先更新您的项目,然后调用 API:

const onCancelRequest = async id => {
  const cancelItems = dataAll.filter(item => item.id == id);

  if(cancelItems.length === 0) {
    return;
  }
  // Update the item
  cancelItems[0].status = 5;

  // Then call the API
  await TriggerRequestAPI.cancelRequest(id, cancelItems[0])
    .then(data => {
      return data.json();
    })
    .then(item => {
      setIsAll(cancelItems);
    })
    .catch(error => console.log(error));
};

API

export const cancelRequest = async(id, item) => {
 const response = await fetch(`API_URL/link/link/${id}`, {
  method: 'put',
  headers: {
    'Content-Type': 'application/json',
    Authorization: `Bearer ${Auth.getToken()}`,
   },
  body: JSON.stringify(item) // item to update
  });
  return getData(response);
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM