javascript - 我的警报仅在我的 React 和 Redux 应用程序的第二次尝试中出现
问题描述
嗨,我的代码中有一个小错误,我真的不知道如何优化它,基本上我用我的 Redux 操作提交数据,如果我们从后端 API 收到错误,我希望它得到错误弹出up,如果密码或电子邮件不正确,以及是否有可能从我的后端获得相同的 API 响应。
我使用 Redux 和 react,开始这是我正在做的动作:
export const login = (email, password) => async dispatch => {
const config = {
headers: {
'Content-Type': 'application/json'
}
};
const body = JSON.stringify({ email, password });
try {
const res = await axios.post(`/users/token/`, body, config);
dispatch({
type: LOGIN_SUCCESS,
payload: res.data
});
dispatch(load_user());
} catch (error) {
dispatch({
type: LOGIN_FAIL,
error: error
})
}
};
对于我的减速机:
case LOGIN_SUCCESS:
case LOGIN_FAIL:
return {
...state,
error: true,
}
最后是我的登录页面:
onSubmit: (value, { setSubmitting }) => {
if(props.error === false) {
props.login(
value.email,
value.password
)
} else {
setAlertContent("The email or password is incorrect")
setAlert(props.error)
}
setTimeout(() => setSubmitting(false), 3 * 1000)
},
作为回报,我收到了来自 material-ui 的警报:
<Box>
{alert ? <Alert variant="filled" severity='error'>{alertContent}</Alert> : <></> }
</Box>
并感谢您为优化我的代码提供的帮助和建议。
解决方案
推荐阅读
- python-3.x - Excel 2013“仅对此工作簿禁用自动恢复”不起作用
- c# - 在矩阵中查找第一个和最后一个真值
- rust - 为什么一个 Warp “hello world” 的例子可以工作,而另一个却不行?
- google-apps-script - Google表格 - 当“状态”更改为值时如何将行移动到工作表底部
- python - 用于图像分类的 CNN 表现不佳
- python - 自定义模型管理器被 prefetch_related 破坏
- azure-devops - 如何重新运行成功的 azure devops YAML 管道阶段以及随后的任何阶段?
- java - maven spotbugs 不生成报告
- java - 需要为 JUnit 测试模拟 JoinPoint
- javascript - 如何在Javascript中隐藏对象?