单击表单按钮时,Ant Design 表单元素未提交

Cha*_*mas 8 forms onsubmit reactjs antd

我正在后端使用 Django Rest 框架并在前端使用 React 构建一个 Web 应用程序。我还使用 Ant Design 来帮助设计样式。我一直在关注 Youtube 上的教程,但目前在尝试提交表单来创建新文章时遇到了一些问题。我已经完成了一些故障排除,我相信问题出在表单的 onSubmit 函数上。我尝试向按钮添加 onClick 以确保点击被识别并且按预期工作,这就是为什么我认为问题出在 onSubmit 上。现在,我想做的就是将表单元素打印到控制台。我是开发网络应用程序的超级新手,因此我们将不胜感激。

import React from 'react';
import { Form, Input, Button } from 'antd';


class CustomForm extends React.Component {

    handleFormSubmit = (event, requestType, articleID) => {
        //event.preventDefault();
        const title = event.target.elements.title.value;
        const content = event.target.elements.content.value;

        console.log(title, content);
    }

    render() {
        return (
            <div>
                <Form
                    onSubmit={event =>
                        this.handleFormSubmit(
                            event,
                            this.props.requestType,
                            this.props.articleID
                        )
                    }
                >
                    <Form.Item label="Title">
                        <Input name="title" placeholder="Enter a Title" />
                    </Form.Item>
                    <Form.Item label="Content">
                        <Input name="content" placeholder="Enter the content of the announcement here" />
                    </Form.Item>
                    <Form.Item>
                        <Button type="primary" htmlType="submit">{this.props.btnText}</Button>
                    </Form.Item>
                </Form>
            </div>
        );
    }
};

export default CustomForm;
Run Code Online (Sandbox Code Playgroud)

Shu*_*rma 8

onSubmit根据文档,该问题antd应该位于onFinish此处,并且您还需要在以下位置name传递:label<Form.Item>

这是代码:

const Demo = () => {
  const onFinish = (values) => {
    console.log("Success:", values);
    //Can directly call props here
  };

  const onFinishFailed = (errorInfo) => {
    console.log("Failed:", errorInfo);
  };

  return (
    <Form
      {...layout}
      name="basic"
      initialValues={{
        remember: true
      }}
      onFinish={onFinish}
      onFinishFailed={onFinishFailed}
    >
      <Form.Item label="Title" name="title">
        <Input name="title" placeholder="Enter a Title" />
      </Form.Item>
      <Form.Item label="Content" name="content">
        <Input
          name="content"
          placeholder="Enter the content of the announcement here"
        />
      </Form.Item>
      <Form.Item>
        <Button type="primary" htmlType="submit">
          Submit
        </Button>
      </Form.Item>
    </Form>
  );
};

Run Code Online (Sandbox Code Playgroud)

这是演示:https ://codesandbox.io/s/competent-violet-opwlh?file=/index.js