当 API 返回 401 时,我想强制注销用户。以下代码是使用 Mobx 在 React Native Ignite 项目中编写的
import { useStores } from "../../models"
this.apisauce.axiosInstance.interceptors.response.use(response => {
return response;
}, error => {
if (error.response.status === 401) {
useStores().authStore.reset()
}
return error;
})
对 authStore.reset() 的调用不会发生,没有错误,没有
console.tron.log
,什么也没有。有没有更好的做法来捕获401并触发mobx动作?无需在调用 API 的每个单独操作中处理它?
就我而言:
// file auth.store.js
class AuthStore {
...
reset(){ ... }
}
export default new AuthStore();
// file models.js
import authStore from 'path/to/file/auth.store.js';
export default { authStore };
// file api-file.js
import useStores from 'path/to/file/models.js';
this.apisauce.axiosInstance.interceptors.response.use(response => {
return response;
}, error => {
if (error.response.status === 401) {
useStores.authStore.reset();
}
return error;
})