reactjs - 提交表单数据时出现错误
问题描述
我创建了一个表单,antd
并希望将数据提交到我的数据库,我创建了以下函数
handleSubmit = (e) => {
e.preventDefault();
this.props.form.validateFieldsAndScroll((err, values) => {
if (!err) {
console.log('Received values of form: ', values);
this.setState({
data:values
})
console.log('this is i ', this.state.data);
}
});
}
当我从表单提交数据时,数据存储在名为values
. 当我第一次提交表格时。如图所示,它在控制台中显示以下内容
。当我再次单击提交时,数据将传递到第二个控制台,如图所示。我能知道我哪里错了吗
解决方案
你没有做错任何事。console.log(this.state)
这实际上是您在调用后尝试立即执行的预期行为。this.setState({})
此逻辑几乎同时发生,因此您将无法立即打印新的状态数据。
如果您想使用新的状态数据执行操作,您可以使用可选的第二个参数,this.setState({})
其中实际上是一个回调。它可以访问您的新状态数据。见下文:
handleSubmit = (e) => {
e.preventDefault();
this.props.form.validateFieldsAndScroll((err, values) => {
if (!err) {
console.log('Received values of form: ', values);
this.setState({
data:values
}, () => console.log(this.state.data))
}
});
}
推荐阅读
- reactjs - 如何使用 React Hook Form 和 Yup 验证自动完成多个 TextField?
- python - 如何跳过pandas中的注释行但保留op文件中的注释行
- php - Codeigniter:问题出在 if else 中。它只适用于 IF 它不会去 else if
- terminal - 通过测试的终端单元测试退出代码颜色更改
- clojure - 如何更新 Clojure 记录的字段
- javascript - Google map API 根据用户输入错误设置国家限制
- python - 如何将等级添加到 discord.py 机器人的经验升级系统?
- c# - 即使使用有效的连接字符串,也得到“请求的 URI 不代表服务器上的任何资源”
- security - Access-Control-Allow-Origin:当我在 Nginx 和 Tomcat 中设置值时检测到 null
- express - 如何保护我的令牌端点只能从同一域中提供的 SPA 调用?