未捕获的类型错误:无法读取未定义的属性“电子邮件”-ReactJS

时间:2021-05-11 02:02:14

标签: javascript reactjs formik

我仍在尝试理解 Reactjs 中的这些概念。我很困惑为什么我被这个问题抛出。 能否请您指导如何解决此错误?

我已将 signUp 和 resendTOPRequest 函数代码片段粘贴到此处。

  let newRef = useRef();
  const signUp = async formData => {
    const checkUserQuery = await props.client.mutate({
      mutation: ForgotPassQueries.forgotPassword,
      variables: formData
    });

    if (get(checkUserQuery, "data.forgotPassword.success")) {
      message.success("We have sent an email to your registered email!");
    } else {
      message.error(get(checkUserQuery, "data.forgotPassword.message"));
    }
  };

  const resendOTPRequest = async () => {
    let email = get(newRef, "current.state.values").email;
    const checkUserQuery = await props.client.query({
      query: ForgotPassQueries.resendOTP,
      variables: { email }
    });

    if (
      !isEmpty(checkUserQuery.data.resendOTP) &&
      get(checkUserQuery, "data.resendOTP.success")
    ) {
      message.success(`New OTP has been sent to ${email}`);
    } else {
      message.error("Invalid Email!");
    }
  };

而且,这是我的 Formik 组件。

<Formik
  ref={newRef}
  onSubmit={(values, { setSubmitting }) => {
    setSubmitting(true);
    signUp(values);
  }}
>
  {({ isSubmitting, errors }) => (
    <>
      <Img src={["/roc.webp", "/roc.png"]} alt="" className="login-logo" />
      <div className="login-box">
        <Form>
          <h4>Forgot your Password?</h4>
          <p className="lead">
            We'll email you the instruction on <br /> how to reset your
            password.
          </p>
          <div className="form-group">
            <i className="fa fa-envelope i__dark"></i>
            <Field
              placeholder="Enter your registered email address"
              type="email"
              name="email"
              required
              className={
                errors.email ? "full__input error__field_show" : "full__input"
              }
            />
          </div>
          <div className="row bluetext mb-3">
            <div
              style={{ cursor: "pointer" }}
              className="col-6 text-left"
              onClick={() => props.history.push("/")}
            >
              <i className="mdi mdi-arrow-left"></i> Back
            </div>

            <div
              style={{ cursor: "pointer" }}
              className="col-6 text-right"
              onClick={() => resendOTPRequest()}
            >
              Resend <i className="mdi mdi-arrow-right"></i>
            </div>
          </div>

          <div className="form-group mb-0">
            <button type="submit" className="btn btn-primary  btn-block">
              Send me instruction
            </button>
          </div>
        </Form>
      </div>
    </>
  )}
</Formik>;

我收到以下控制台错误:

Cannot Read property 'email' of underfined

0 个答案:

没有答案