【问题标题】:code always shows email error. Email validation error in react native代码总是显示电子邮件错误。反应本机中的电子邮件验证错误
【发布时间】:2021-02-16 19:51:22
【问题描述】:

我正在以我的 react 本机形式验证电子邮件,但代码中有问题,我找不到。请帮忙。

class index extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      email: "",
      emailError: "",
  
    };


 emailValidator = (text) => {
    let reg = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
    if (reg.test(text) === false) {
      this.setState({ emailError: "Please enter a valid email address" });
      return false;
    } else {
      this.setState({ email: text });
    }
  };
render() {
return(

<Input
      keyboardType={"email-address"}
      onBlur={(text) => this.emailValidator(text)}
      placeholder="Email"
        ></Input>
        <Text style={{ color: "red", paddingLeft: 10 }}>
          {this.state.emailError}
        </Text>
)}

即使我输入了正确的电子邮件,它也会显示 emailError 消息“请输入有效的电子邮件地址”。此外,在提交时,我需要显示一个模式框,上面写着“感谢您的提交”。请帮忙

【问题讨论】:

    标签: react-native email-validation


    【解决方案1】:

    当电子邮件采用预期格式时,您只是在更新 email 状态。所以emailError 仍然存在于上一封电子邮件中。

    简单的解决方法是将emailError 更新回空字符串,同时使用正确的电子邮件大小写。

    【讨论】:

      【解决方案2】:

      当您的电子邮件有效时,在您的 emailValidator 函数中,您没有更新 emailError。请检查下面的 emailValidator 函数

       emailValidator = (text) => {
          let reg = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
          if (reg.test(text) === false) {
            this.setState({ emailError: "Please enter a valid email address" });
            return false;
          } else {
            this.setState({ email: text, emailError:"" });
          }
        };
      

      【讨论】:

      • 请与我分享完整的代码。?给我回购网址
      猜你喜欢
      • 2014-12-19
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2015-11-22
      • 2012-09-12
      • 1970-01-01
      相关资源
      最近更新 更多