首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

onSubmit在react.js上不起作用,请使用Formik并刷新站点

基础概念

onSubmit 是 React 中用于处理表单提交事件的函数。当用户提交表单时,这个函数会被调用。Formik 是一个流行的 React 表单库,它简化了表单的状态管理和验证过程。

问题原因及解决方法

如果你在使用 onSubmit 时遇到问题,可能是因为没有正确地绑定事件处理函数或者没有正确地处理表单状态。使用 Formik 可以帮助你更好地管理表单状态和提交逻辑。

示例代码

以下是一个使用 FormikonSubmit 的示例:

代码语言:txt
复制
import React from 'react';
import { Formik, Form, Field, ErrorMessage } from 'formik';

const initialValues = {
  name: '',
  email: '',
};

const onSubmit = (values, { setSubmitting }) => {
  setTimeout(() => {
    alert(JSON.stringify(values, null, 2));
    setSubmitting(false);
  }, 400);
};

const validate = (values) => {
  const errors = {};
  if (!values.name) {
    errors.name = 'Required';
  }
  if (!values.email) {
    errors.email = 'Required';
  } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(values.email)) {
    errors.email = 'Invalid email address';
  }
  return errors;
};

const MyForm = () => (
  <Formik
    initialValues={initialValues}
    onSubmit={onSubmit}
    validate={validate}
  >
    {({ isSubmitting }) => (
      <Form>
        <Field type="text" name="name" />
        <ErrorMessage name="name" component="div" />
        <Field type="email" name="email" />
        <ErrorMessage name="email" component="div" />
        <button type="submit" disabled={isSubmitting}>
          Submit
        </button>
      </Form>
    )}
  </Formik>
);

export default MyForm;

解释

  1. 导入依赖:首先导入 Formik, Form, Field, 和 ErrorMessage 组件。
  2. 初始值:定义表单的初始值 initialValues
  3. 提交处理函数:定义 onSubmit 函数,它会在表单提交时被调用。
  4. 验证函数:定义 validate 函数,用于验证表单字段。
  5. 表单组件:使用 Formik 组件包裹表单,并传递 initialValues, onSubmit, 和 validate 函数。
  6. 表单字段:使用 Field 组件定义表单字段,并使用 ErrorMessage 组件显示验证错误信息。

应用场景

Formik 适用于需要复杂表单状态管理和验证的场景,例如用户注册、登录、数据提交等。

参考链接

通过以上步骤,你应该能够解决 onSubmit 在 React.js 上不起作用的问题,并且能够更好地管理表单状态和提交逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券