data.json不是使用Fetch API的函数reactjs

问题描述 投票:0回答:1

我具有使用提取API的删除功能,但是在删除时,出现此错误data.json is not a function

这是我的代码

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

我正在另一个文件中调用它

const deleteLeaveType = async id => {
  let deleteLeaveType = isLeaveType.filter(
    item => item.id !== id
  );

  await CalendarManagementAPI.deleteLeaveType(id)
    .then(data => {
      console.log(data.json());
      setLeaveType(deleteLeaveType);
    });
    setLoadingLeaveTypes(false);
    fetchLeaveTypes();
  })
  .catch(error => {
    console.log(error);
  });
};
javascript reactjs fetch-api
1个回答
0
投票

如评论中所述,您不应与async同时使用await / .then()。这是两种处理异步功能的方法,因此一次只能使用一种。

deleteLeaveType功能中,如果您更喜欢使用.then处理异步功能,则可以摆脱asyncawait,如下所示:

// remove 'async' from function declaration
const deleteLeaveType = id => {
  // keep original code      

  // remove 'await'
  CalendarManagementAPI.deleteLeaveType(id)
    .then(data => {
      // ... everything else the same
};

我也建议对两个函数数组不要使用相同的变量名deleteLeaveType。这可能会使您在任何给定时刻所引用的内容感到困惑。

© www.soinside.com 2019 - 2024. All rights reserved.