代码之家  ›  专栏  ›  技术社区  ›  Reena Verma

ReactJS-前端表单错误处理程序/验证

  •  0
  • Reena Verma  · 技术社区  · 6 年前

    我正在ReactJS中构建一个简单的捐赠应用程序。这里有一个工作版本: https://stackblitz.com/edit/react-grzdgz

    不过,我从未进行过表单错误验证。所以如果有人不填写字段,我希望弹出一条错误消息,上面写着“这个字段必须完成”。

    我一直在尝试遵循本教程: https://learnetto.com/blog/how-to-do-simple-form-validation-in-reactjs

    但是我有点迷路了,关于如何将这些函数/错误消息传递到我的表单中,这个表单位于一个单独的模块中。在演示中,所有内容都位于一个文件中。

    但是在我的应用程序中,我的表单单独地位于index.js中。所以我在index.js中链接到它。

    我就快到了,我只是需要一些帮助把一切联系起来。

    有人能帮我验证表单错误吗?

    错误处理功能都位于此处: https://stackblitz.com/edit/react-grzdgz

    表单本身位于此处: https://stackblitz.com/edit/react-grzdgz?file=components%2FForm.js

    以下是一些形式的错误: https://stackblitz.com/edit/react-grzdgz?file=components%2FFormErrors.js

    任何帮助都会很好! 谢谢您!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Alexandre Rivest    6 年前

    在提交时,我将有一个方法名为: validateFields ,这将验证所有字段(而不是使用HTML的默认验证程序,后者在某些浏览器上不起作用)。在该方法中,我将保存所有字段并返回一个错误。

    如果错误列表(或对象)不是空的,则使用警报或弹出窗口 react-popup

    如果没有错误,可以调用Submit方法。

    基本上,它看起来像:

    export default class DumbComponent extends React.Component {
    
      state = {} // all your field value
    
      validateField = () => {
        let error = []
        //Validate all your field
    
        if (error.length === 0) {
          this.submit()
        } else {
          this.showError() // You decide the way
        }
      }
    
      render() {
        return (
          <Form>
            <FieldOne />
            <Field2 />
    
            <SubmitButton onSubmit={this.validateField} />
          </Form>
        )
      }
    }
    

    希望它能回答你的问题!