1 回答

TA贡献1770条经验 获得超3个赞
在您的示例中,您在加载文件时为 axios 设置令牌。这意味着只有在应用程序加载时,而不是在您登录后。所以那个localStorage时候那个项目是空的。
所以解决方案是为 axios 设置拦截器而不是你的实例authAxios:
const App = (props) => {
// This will trigger when only once when page refreshes
useEffect(() => {
axios.interceptors.request.use(
(config) => {
config.headers = {
...config.headers,
Authorization: `Token ${token ? localStorage.getItem("token") : null}`
};
return config;
},
(error) => {
props.dispatchRedirectToLoginPage()
return Promise.reject(error);
}
);
}, [])
return <div>Your app</div>
}
这样每个请求都会执行这个函数,它会从 localStorage 中获取令牌。
您进行的每个 api 调用都可以使用axios.get(...)或使用您需要的任何方法。
添加回答
举报