Reactjs 刷新页面时,axios请求令牌返回null
我使用的是axios,我在useeffect中发送请求,它可以工作,但当我刷新页面(F5)时,我从redux获取并添加到axios实例中的标记为nullReactjs 刷新页面时,axios请求令牌返回null,reactjs,redux,axios,use-effect,Reactjs,Redux,Axios,Use Effect,我使用的是axios,我在useeffect中发送请求,它可以工作,但当我刷新页面(F5)时,我从redux获取并添加到axios实例中的标记为null "axios": "^0.20.0", "react": "^16.14.0", "redux": "^4.0.5", "redux-logger": "^3.0.6", "r
"axios": "^0.20.0",
"react": "^16.14.0",
"redux": "^4.0.5",
"redux-logger": "^3.0.6",
"redux-persist": "^6.0.0",
"redux-thunk": "^2.3.0"
这只是一个api调用,在refresh中,我的令牌是'Bearer null':
axios.interceptors.request.use(
function (config) {
const token = store.getState().auth.token;
config.headers.Authorization = `Bearer ${token}`;
// Do something before request is sent
console.log("req config", config);
return config;
},
function (error) {
// Do something with request error
return Promise.reject(error);
}
);
刷新后,您需要等待令牌在redux存储中重新水化,但不会立即发生。如果这仍然不起作用,您需要验证令牌是否通过
redux persist
持久化
useEffect(() => {
getAssessments();
getGroups();
getAssessmentUsers();
}, []);
当
标记
发生更改时,将触发此useEffect挂钩,例如:prevToken!==令牌,因此您还需要添加if语句以在令牌不为null时执行请求您需要等待令牌在刷新后在redux存储中重新水化,但不会立即发生。如果这仍然不起作用,您需要验证令牌是否通过redux persist
持久化
useEffect(() => {
getAssessments();
getGroups();
getAssessmentUsers();
}, []);
当
标记
发生更改时,将触发此useEffect挂钩,例如:prevToken!==令牌,因此您还需要添加if语句,以便在令牌不为null时执行请求只需确保在调用任何东西之前先拥有令牌即可。换句话说,您需要首先获取令牌,然后在其他api调用中检查令牌。我在redux存储中有它,但如何确保在发送请求之前拥有它?有没有办法等待令牌或?将令牌作为依赖项传递到useffect钩子中,当您让令牌执行requestYes时,最简单的方法是在设置授权头之前检查令牌:)只需确保在调用任何东西之前先拥有令牌。换句话说,您需要首先获取令牌,然后在其他api调用中检查令牌。我在redux存储中有它,但如何确保在发送请求之前拥有它?有没有办法等待令牌或?在useEffect钩子中将令牌作为依赖项传递,当您让令牌执行requestYes时,最简单的方法是在设置授权头之前检查令牌:)