javascript - React hooks setState 可能在 try catch 中出现错误
问题描述
我有一个函数来处理登录表单的提交,并且发生了一些非常奇怪的事情。如果我第一次正确输入所有字段,则一切正常,但如果我触发错误,那么每次运行函数时,错误将始终为真,即使在函数开始时将其设置为假。
const initialState = {
email: '',
password: '',
error: false,
success: false
};
const [state, setState] = useState(initialState);
const handleSubmit = e => {
e.preventDefault();
setState({ ...state, error: false, success: false });
props.form.validateFields(async (err, values) => {
try {
const { data, status } = await axios.post(vManager.path, values);
if (data.token) {
localStorage.setItem('token', data.token);
}
setState({ ...state, success: true });
} catch (err) {
setState({ ...state, error: true });
}
});
};
解决方案
推荐阅读
- c - 如何让编译器警告我缺少返回值?
- python - 在 Django 中为新帖子保存 category_id
- android - 第二个活动的 Anko 布局未显示
- automation - 尝试使用 autohotkey 对本地 html 文件执行某些处理时出现“rpc 服务器不可用”
- javascript - React-Native & Redux “动作必须是普通对象。为异步函数使用自定义中间件”
- javascript - 下一个图像功能在调用时不显示
- node.js - ionic 3 中的 socket.io 客户端不工作?
- python - python f'string 在 pd.Series.map 函数中不起作用
- php - 无法在后端设计配置中更改 magento2 主题
- windows - Windows 命令行:在新的控制台窗口中执行 .bat 文件