javascript - 无法读取未定义的 reactjs Jwt Auth 的属性“令牌”
问题描述
// Auth Service.js
const login = (username, password) => {
return axios
.post(API_URL + "signin", {
username,
password,
})
.then((response) => {
if (response.data && response.data.data && response.data.data.token) {
localStorage.setItem("user", JSON.stringify(response.data));
}
return response.data;
})
.catch((err) => {
console.log("An error occured: ", err);
});
};
如果凭据不正确,我会收到此错误,如果登录详细信息正确,则工作正常,我还想显示电子邮件或密码是否错误我想获取 API 服务器响应消息并在登录按钮下方显示响应消息. 有人请帮助我
// Auth.js
export const login = (username, password) => (dispatch) => {
return AuthService.login(username, password).then(
(data) => {
dispatch({
type: LOGIN_SUCCESS,
payload: { user: data },
});
return Promise.resolve();
},
(error) => {
const message =
(error.response &&
error.response.data &&
error.response.data.message) ||
error.message ||
error.toString();
dispatch({
type: LOGIN_FAIL,
});
dispatch({
type: SET_MESSAGE,
payload: message,
});
return Promise.reject();
}
);
};
// Login.js
const handleLogin = (e) => {
e.preventDefault();
setLoading(true);
form.current.validateAll();
if (checkBtn.current.context._errors.length === 0) {
dispatch(login(username, password))
.then(() => {
props.history.push("/home");
window.location.reload();
})
.catch(() => {
setLoading(false);
});
} else {
setLoading(false);
}
};
if (isLoggedIn) {
return <Redirect to="/home" />;
}
解决方案
catch()
您可以通过链接后处理 catch 块中的错误then()
const login = (username, password) => {
return axios
.post(API_URL + "signin", {
username,
password,
})
.then((response) => {
if (response.data.data.token) {
localStorage.setItem("user", JSON.stringify(response.data));
}
return response.data;
}).catch((err)=>{
console.log("An error occured: ", err);
});
};
推荐阅读
- javascript - 如何映射单选按钮并检索不重复的值
- c# - 使用c#动态应用excel行的背景颜色
- python - 在 1 台机器和大型数据集上使用 Dask 的 KilledWorker 异常?
- django - 如何在 DRF 的列表中传递详细 url
- c# - `UnityEngine.WorldParticleCollider' 由于其保护级别而无法访问
- vba - 使用 VBA 将电子邮件打印到 PDF - 首次运行会生成空白文档
- javascript - 应提供什么 ARIA 代码以使这些按钮可访问
- javascript - createStore 函数返回未定义的存储对象
- c# - 使用 azure 函数将消息发送到主题的哪种方式?
- scrapy - Scrapy:TypeError:“NoneType”类型的参数不可迭代