React:formik 表单,如何在回调函数内提交后使用状态

IT技术 reactjs react-redux formik
2021-05-25 01:37:57

我正在使用formik插件reactjs,我想useState在表单提交后使用变量。

这两个thissetState是不确定的,我无法做到。
有人可以帮我完成这项工作吗?

见截图(下) 在此处输入图片说明

1个回答

在 中JavaScript,默认情况下不绑定类方法。
如果您忘记绑定this.LoginApp并将其传递给onSubmit,thisundefined是实际调用该函数时(正如您已经注意到的)。

这不是 React 特定的行为;它是 JavaScript 中函数如何工作的一部分。

一般来说,如果你引用一个没有()在它后面的方法,比如onSubmit={this.LoginApp},你应该绑定那个方法。并且为了避免性能问题,一般建议在构造函数中绑定或使用类字段语法。这是 React 团队的一篇很好的文章

constructor(props) {
  this.state = {...};

  // This binding is necessary to make `this` work in the callback
  this.LoginApp = this.LoginApp.bind(this);
}