我已经使用jsconfig.json
创建了一个表单,并想将数据提交到我的数据库中,并且创建了以下函数
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);
}
});
}
的变量中。当我第一次提交表格时。它在控制台中显示以下内容
as shown in image。当我再次单击提交时,数据将传递到第二个控制台as shown image。我能知道我哪里出了错
答案 0 :(得分:1)
您没有做错任何事情。当您在调用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))
}
});
}