Javascript 在react中使用axios拦截器的问题

Javascript 在react中使用axios拦截器的问题,javascript,reactjs,axios,xmlhttprequest,interceptor,Javascript,Reactjs,Axios,Xmlhttprequest,Interceptor,我想在使用axios发出和发送请求时获得获取状态。我认为我可以通过使用axios拦截器来实现这一点。我尝试以下代码: /axiostance.js let fetching=false; const axiosInstance=axios.create(); axiosInstance.interceptors.request.use(配置=>{ 取数=真; log(“第一个日志:”,正在获取); 返回配置; },()=>{fetching=false}); axiosInstance.inte

我想在使用axios发出和发送请求时获得获取状态。我认为我可以通过使用axios拦截器来实现这一点。我尝试以下代码:

/axiostance.js

let fetching=false;
const axiosInstance=axios.create();
axiosInstance.interceptors.request.use(配置=>{
取数=真;
log(“第一个日志:”,正在获取);
返回配置;
},()=>{fetching=false});
axiosInstance.interceptors.response.use(()=>{
log(“第二个日志:”,正在获取);
取数=假;
log(“第三个日志:”,正在获取);
});
导出{获取,axiosInstance};
这就是我使用自己创建的axios实例发出和发送请求的方式:

/component.js

从“/axiosInstance”导入{fetching,axiosInstance};
常量组件=()=>{
const sendRequest=()=>{
get(“someUrl:somePort/”;
};
返回(
点击
{获取?“真”:“假”}

); } 导出默认组件;
但问题是,这是行不通的。我在
/axiostance.js中获得了预期的日志:

第一个日志:true
第二个日志:true
第三个日志:false
但是我在
/component.js
中有一个标记,我用它来显示从
/axiostance.js
中获取变量的值。它的价值永远不会变为真,也永远是假的

{fetching?“true”:“false”}

您可以使用
获取
作为状态。
它会工作的。

会的。谢谢。
import {useState} from 'react';

const [fetching, setFetching] = useState(false);

const axiosInstance = axios.create();

axiosInstance.interceptors.request.use(config => { 
    setFetching(true);
    console.log("first log: ", fetching);
    return config;
}, () => { fetching = false });

axiosInstance.interceptors.response.use(() => { 
    console.log("second log: ", fetching);
    setFetching(false);
    console.log("third log: ", fetching);
});

export { fetching, axiosInstance };