首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >formik.status setStatus未更新- Formik未定义

formik.status setStatus未更新- Formik未定义
EN

Stack Overflow用户
提问于 2021-01-26 12:20:53
回答 1查看 120关注 0票数 0

在收到来自服务器的错误响应后,我正在尝试手动设置我的formik实例的状态:

代码语言:javascript
复制
  const formik = useFormik({
    initialValues: {
      email: "",
      password: "",
    },
    onSubmit: async ({ email, password }, { setStatus }) => {
      try {
        const response = await loginUser({
          variables: {
            email,
            password,
          },
        });
      } catch (error) {
        await setStatus({ email: error.message, password: error.message });

        console.log(formik.status);
      }

      formik.resetForm();
    },
    validationSchema: Yup.object().shape({
      email: Yup.string(),
      password: Yup.string(),
    }),
  });

日志记录状态打印undefined

为什么没有设置状态?

EN

回答 1

Stack Overflow用户

发布于 2021-01-27 02:39:45

我想通了。

使用resetForm可清除表单状态和错误。

为了解决这个问题,我手动清除了这两个字段:

代码语言:javascript
复制
  initialValues={{
    email: "",
    password: "",
  }}
  onSubmit={async ({ email, password }, { setStatus, setFieldValue }) => {
    try {
      const response = await loginUser({
        variables: {
          email,
          password,
        },
      });
    } catch (error) {
      setStatus({
        email: "Shit",
      });

      setFieldValue("email", "");
      setFieldValue("password", "");
    }
  }}
  validationSchema={Yup.object().shape({
    email: Yup.string(),
    password: Yup.string(),
  })}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65895856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档