【问题标题】:Axios AbortController not working for me in reactjsAxios AbortController 在 reactjs 中不适合我
【发布时间】:2022-11-08 12:36:11
【问题描述】:

我尝试加载一个页面并立即返回到上一页。我希望它中止,但是当我检查网络选项卡时,api 调用仍然成功并成功获取数据。这是我的代码:

      useEffect(() => {
      const controller = new AbortController();
      
      const getPost = async () => {
       try{
          setIsLoading(true)
        const response = await axios.get(`${BASE_URL}/posts/${path}`, {signal: 
        controller.signal})
       
        setUsername(response.data.username)
        
        setIsLoading(false)
        
       }catch(err){
     
            if(err.response.data == 'ERR_ABORTED 400'){
                return console.log('request canceled')
            }
          setIsLoading(false)
        if(err.response.data === 'no post found'){
            return setgeneralFetchError(true)
        }
        
       }
       
        return ()=>{
    controller.abort()
  }
   };

   
  getPost()
   
 
}, [path]);

这是我第一次尝试这样做。可能我做得不好。

【问题讨论】:

  • 您是否确认正在调用返回的函数?在调用 controller.abort() 之前,我会在该方法中添加一些控制台日志记录
  • 它没有被调用。这就是问题所在。没有调用返回函数,我不知道为什么。
  • 您需要在getPost() 之后而不是在 getPost 函数中包含您的 return 语句
  • 已经这样做了,不工作

标签: node.js reactjs react-hooks axios


【解决方案1】:

尝试删除等待并检查

【讨论】:

    猜你喜欢
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2023-02-20
    • 2020-06-18
    • 1970-01-01
    • 2020-12-04
    • 2020-09-21
    • 2020-07-17
    相关资源
    最近更新 更多