首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React窗体onSubmit异步调用两次

React窗体onSubmit异步调用两次
EN

Stack Overflow用户
提问于 2020-05-02 18:26:14
回答 2查看 2K关注 0票数 8

我正在尝试使用异步与onSubmit与以下代码的Formik在反应

代码语言:javascript
复制
import React from "react";
import { Formik, Form, Field } from "formik";
import { Row, Col, Button } from "react-bootstrap";

const AddUser = () => {
  const initialValues = {
    name: "",
  };

  return (
    <>
      <Row className="h-100">
    <Col xs={12} sm={1}></Col>
    <Col xs={12} sm={10} className="align-self-center">
      <div className="block-header px-3 py-2">Add Dataset</div>
      <div className="dashboard-block dashboard-dark">
        <Formik
          initialValues={initialValues}
          onSubmit={async (values, { setSubmitting }) => {
            alert("hi");
            setSubmitting(false);
          }}
        >
          {({ isValid, submitForm, isSubmitting, values }) => {
            return (
              <Form>
                <Field
                  name="name"
                  label="Name"
                  placeholder="Dataset Name"
                />
                <Button
                  type="submit"
                  disabled={!isValid || isSubmitting}
                  className="w-100 btn btn-success"
                  onClick={submitForm}
                >
                  Add Dataset
                </Button>
              </Form>
            );
          }}
        </Formik>
      </div>
    </Col>
    <Col xs={12} sm={1}></Col>
  </Row>
</>
  );
};

export default AddUser;

当我试图提交的时候。它会发出两次“嗨”的警报。当我不使用onSubmit作为异步时,它工作得很好。

我做错了什么,或者有没有其他方法来执行异步功能,因为我需要执行RestAPI调用?

EN

回答 2

Stack Overflow用户

发布于 2021-04-02 09:13:21

删除type="submit",因为已经有一个操作onClick={submitForm}

代码语言:javascript
复制
<Button
    type="submit"
    disabled={!isValid || isSubmitting}
    className="w-100 btn btn-success"
    onClick={submitForm}
>
票数 3
EN

Stack Overflow用户

发布于 2021-02-12 21:04:07

请确保不要同时添加两个

onClick={formik.formik.handleSubmit}

<form onSubmit={formik.handleSubmit}>

应该是一个或另一个。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61557815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档