当我提交联系表单时,它在react js中显示错误

文尼KB

当我提交联系表单时,它会显示错误,例如错误发送消息。请帮助我,我的代码有任何错误。我是React JS的新手。这是我使用的代码。请帮助我,这是否有任何逻辑或语法错误。

import React, { FormEvent, ReactElement } from 'react';
import { noop } from 'rxjs';
import { EmailData } from '../../../models/i-email-data';
import { EmailInput, MessageInput, NameInput, SubjectInput } from './';



  interface Props {
        onSubmit: (data: EmailData) => Promise<any>;
    }

    *type* State = EmailData;

    export class ContactForm extends React.Component<Props, State> {
        public state: State = {
            name: '',
            email: '',
            subject: '',
            message: '',
        };

        public render(): ReactElement {
            const { name, email, subject, message } = this.state;
            return (
                <>
                    <h3 className='contact-form__title'>Send a Message</h3>
                    <form className='form' onSubmit={this.onSubmit}>
                        <NameInput onChange={this.handleInputChange} value={name} />
                        <EmailInput onChange={this.handleInputChange} value={email} />
                        <SubjectInput onChange={this.handleInputChange} value={subject} />
                        <MessageInput onChange={this.handleInputChange} value={message} />
                        <div className='contact-form__btn-wrapper'>
                            <button className='contact-form__submit'> Submit</button>
                        </div>
                    </form>
                </>
            );

import React, { FormEvent, ReactElement } from 'react';
import { noop } from 'rxjs';
import { EmailData } from '../../../models/i-email-data';
import { EmailInput, MessageInput, NameInput, SubjectInput } from './';

interface Props {
    onSubmit: (data: EmailData) => Promise<any>;
}

type State = EmailData;

export class ContactForm extends React.Component<Props, State> {
    public state: State = {
        name: '',
        email: '',
        subject: '',
        message: '',
    };

    public render(): ReactElement {
        const { name, email, subject, message } = this.state;
        return (
            <>
                <h3 className='contact-form__title'>Send a Message</h3>
                <form className='form' onSubmit={this.props.onSubmit}>
                    <NameInput onChange={this.handleInputChange} value={name} />
                    <EmailInput onChange={this.handleInputChange} value={email} />
                    <SubjectInput onChange={this.handleInputChange} value={subject} />
                    <MessageInput onChange={this.handleInputChange} value={message} />
                    <div className='contact-form__btn-wrapper'>
                        <button className='contact-form__submit'> Submit</button>
                    </div>
                </form>
            </>
        );
    }

    private handleInputChange = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>): void => {
        const { value, name } = event.target;
        this.setState({ [name]: value } as any);
    };

    private onSubmit = async (e: FormEvent): Promise<void> => {
        try {
            e.preventDefault();
            await this.props.onSubmit(this.state);
            this.setState({ name: '', email: '', subject: '', message: '' });
        } catch (e) {
            noop();
        }
    };

这是我使用的代码。请帮助我,这是否有任何逻辑或语法错误。

约阿尼斯·波图里迪斯

根据您的Props界面,我想您正在传递onSubmit回调作为道具。

如果这是你需要解压的情况下onSubmitthis.props,所以下面不会失败。

<form className='form' onSubmit={this.onSubmit}>

编辑1:您需要传递您的状态,以便将表单的状态传递给父组件

更改为:

<form 
  className='form'
  onSubmit={(event) => {
    event.preventDefault();
    this.props.onSubmit(this.state);
  }}
>

编辑2:我看到你也失踪handleInputChange了。

快速实现handleInputChange如下所示:

handleInputChange = (name) => ({ target }) => {
  this.setState((prevState) => ({
    ...prevState,
    [name]: target.value
  });
}

您可以这样称呼它:

<NameInput onChange={this.handleInputChange('name')} value={name} />
<EmailInput onChange={this.handleInputChange('email')} value={email} />

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django-提交联系表单时出现405错误

来自分类Dev

提交联系表单时,apache没有显示任何内容

来自分类Dev

提交联系表格时显示感谢信息

来自分类Dev

提交联系我们表格时,我希望保留在此完整表格中

来自分类Dev

提交联系我们表格时,我希望保留在此完整表格中

来自分类Dev

联系表格 7 不重定向。当我单击提交时,它在 url 中添加了 #wpcf7-f1415-p1406-o1

来自分类Dev

当我在textarea中单击时,它会提交表单

来自分类Dev

当我尝试提交HTML表单时显示错误“无法发布”

来自分类Dev

当我尝试提交HTML表单时显示错误“无法发布”

来自分类Dev

在表单提交中,当我转到下一页时,数据将不显示

来自分类Dev

提交联系表后显示“谢谢”消息

来自分类Dev

当我单击后退按钮时,Chrome提交表单时未显示任何弹出通知?

来自分类Dev

当我在 jquery 中调用 ID 时,表单未提交,但是当我将 id 更改为类时,表单提交

来自分类Dev

每当我尝试提交表单时都会显示sqlalchemy.exc.InterfaceError

来自分类Dev

当我要求它在吐司中显示保存的数据时,我的APP崩溃了-我

来自分类Dev

PHP联系表单在提交时返回错误

来自分类Dev

当我在Laravel上提交表单时,出现错误消息:RouteCollection.php第219行中的MethodNotAllowedHttpException?

来自分类Dev

当我在Laravel上提交表单时,出现错误消息:RouteCollection.php第219行中的MethodNotAllowedHttpException?

来自分类Dev

当我在文本框中按Enter键时不要提交表单

来自分类Dev

Zend框架:当我从zend框架中的fancybox提交表单时,Ajax无法正常工作

来自分类Dev

当我单击查看页面中的任何按钮时,将提交表单

来自分类Dev

当我插入数据时,它在数据库中显示为“ 1”-php,sql

来自分类Dev

当我尝试提交表单而不选择日期时,我遇到了 undefined offset 1 错误

来自分类Dev

当我用所需的值定义数组时,它在shell脚本中引发错误

来自分类Dev

表单验证错误:每当我单击“提交”按钮时,都会在errorDiv上附加错误结果

来自分类Dev

提交表单时不显示错误类

来自分类Dev

提交有错误的表单时,向下滚动至页面底部的联系表单

来自分类Dev

提交有错误的表单时,向下滚动至页面底部的联系表单

来自分类Dev

当我通过 Id 和 enctype 进行图像上传时,JQuery 代码中的表单提交不会触发

Related 相关文章

  1. 1

    Django-提交联系表单时出现405错误

  2. 2

    提交联系表单时,apache没有显示任何内容

  3. 3

    提交联系表格时显示感谢信息

  4. 4

    提交联系我们表格时,我希望保留在此完整表格中

  5. 5

    提交联系我们表格时,我希望保留在此完整表格中

  6. 6

    联系表格 7 不重定向。当我单击提交时,它在 url 中添加了 #wpcf7-f1415-p1406-o1

  7. 7

    当我在textarea中单击时,它会提交表单

  8. 8

    当我尝试提交HTML表单时显示错误“无法发布”

  9. 9

    当我尝试提交HTML表单时显示错误“无法发布”

  10. 10

    在表单提交中,当我转到下一页时,数据将不显示

  11. 11

    提交联系表后显示“谢谢”消息

  12. 12

    当我单击后退按钮时,Chrome提交表单时未显示任何弹出通知?

  13. 13

    当我在 jquery 中调用 ID 时,表单未提交,但是当我将 id 更改为类时,表单提交

  14. 14

    每当我尝试提交表单时都会显示sqlalchemy.exc.InterfaceError

  15. 15

    当我要求它在吐司中显示保存的数据时,我的APP崩溃了-我

  16. 16

    PHP联系表单在提交时返回错误

  17. 17

    当我在Laravel上提交表单时,出现错误消息:RouteCollection.php第219行中的MethodNotAllowedHttpException?

  18. 18

    当我在Laravel上提交表单时,出现错误消息:RouteCollection.php第219行中的MethodNotAllowedHttpException?

  19. 19

    当我在文本框中按Enter键时不要提交表单

  20. 20

    Zend框架:当我从zend框架中的fancybox提交表单时,Ajax无法正常工作

  21. 21

    当我单击查看页面中的任何按钮时,将提交表单

  22. 22

    当我插入数据时,它在数据库中显示为“ 1”-php,sql

  23. 23

    当我尝试提交表单而不选择日期时,我遇到了 undefined offset 1 错误

  24. 24

    当我用所需的值定义数组时,它在shell脚本中引发错误

  25. 25

    表单验证错误:每当我单击“提交”按钮时,都会在errorDiv上附加错误结果

  26. 26

    提交表单时不显示错误类

  27. 27

    提交有错误的表单时,向下滚动至页面底部的联系表单

  28. 28

    提交有错误的表单时,向下滚动至页面底部的联系表单

  29. 29

    当我通过 Id 和 enctype 进行图像上传时,JQuery 代码中的表单提交不会触发

热门标签

归档