提交表单数据时出现错误

时间:2019-05-07 07:27:08

标签: reactjs rest antd

我已经使用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。我能知道我哪里出了错

1 个答案:

答案 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))
      }
    });
  }