axios delete .catch 命令在 void 中不存在

我一直在尝试使用 axios .delete 请求从列表中删除卡片。


删除函数的代码如下:


deleteProduct(id: any) {

    const { adminhelpcard } = this.state;


    const apiVideoUrl = `http://localhost:3000/videos/${id}`;

    //const apiManualUrl = `http://localhost:3000/manuals/${id}`;


    const options = {

      method: "DELETE"

    };


    axios

      .delete(apiVideoUrl, {})


      .then((response: any) => {

        this.setState({

          adminhelpcard: adminhelpcard.filter((adminhelpcard: SingleAdminHelpCard) => adminhelpcard.id !== id)

        }).catch(function(error) {

          console.log(error);

        });

我从 .catch 和函数(错误)中收到两个不同的错误。


.catch 的错误是:


Property 'catch' does not exist on type 'void'.ts(2339)

来自 (error) 的错误是:


Parameter 'error' implicitly has an 'any' type.ts(7006)

有什么我显然错过了吗?


提前感谢您的时间和帮助。


catspeake
浏览 599回答 2
2回答

潇潇雨雨

您正在尝试catch你的setState电话,而不是删除请求本身:axios      .delete(apiVideoUrl, {})      .then((response: any) => {        this.setState({          adminhelpcard: adminhelpcard.filter((adminhelpcard: SingleAdminHelpCard) => adminhelpcard.id !== id)        })       }).catch(function(error) {          console.log(error);        });

白衣非少年

您将 .catch() 附加到 setState() 而不是 .then()改变:axios      .delete(apiVideoUrl, {})      .then((response: any) => {        this.setState({          adminhelpcard: adminhelpcard.filter((adminhelpcard: SingleAdminHelpCard) => adminhelpcard.id !== id)        }).catch(function(error) {          console.log(error);        });到:axios   .delete(apiVideoUrl, {})   .then((response:any) => {        this.setState({            adminhelpcard: adminhelpcard.filter((adminhelpcard: SingleAdminHelpCard) => adminhelpcard.id !== id)        })    }).catch(function(error) {        console.log(error);    });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript