类型“UseMutationResult <AxiosResponse <any,any>,Error,void,unknown>”上不存在属性“isLoading”。ts(2339)

Sty*_*war 2 typescript reactjs next.js

我正在尝试创建一个删除函数,其中它将显示tanstackquery 的loading state使用useMutate,但问题是当我删除按钮时,即使我更改了网络速度,它也不会显示加载状态。

在此输入图像描述

const ButtonAction = ({ id }: ButtonActionProps) => {
  const router = useRouter();

  const { mutate: deletePost, isLoading } = useMutation({
    mutationFn: () => {
      return axios.delete(`/api/posts/${id}`);
    },
    onError: (error) => {
      console.error(error);
    },

    onSuccess: () => {
      router.push("/");
      router.refresh();
    },
  });

  

  return (
    <div>
      <Link href="/edit/1" className="btn mr-2">
        {" "}
        <Pencil /> Edit
      </Link>
      <button onClick={() => deletePost()} className="btn btn-error">
        {" "}
        {isLoading && (
          <span className="loading loading-spinner loaddeing-xs"></span>
        )}
        {isLoading ? (
          "Loading..."
        ) : (
          <>
            <Trash />
            Delete
          </>
        )}
      </button>
    </div>
  );
};

export default ButtonAction;
Run Code Online (Sandbox Code Playgroud)

小智 6

我正在使用 tanstack v“5.8.1”,isLoading 不是该版本的可用属性。尝试使用 isPending 代替。