Reactjs 使用Formik和Yup键入时验证用户名是否已存在

Reactjs 使用Formik和Yup键入时验证用户名是否已存在,reactjs,forms,formik,yup,Reactjs,Forms,Formik,Yup,我的公司有一项任务,我必须显示用户名是否被使用,我正在使用formik和yup验证进行检查,因此目前我在yup验证中添加了一个自定义测试功能,在点击提交按钮时显示用户名是否被使用,我最初的任务是在用户输入用户名时动态显示错误消息,它应该告诉用户是否使用了用户名。 我知道我可能必须操纵formik的默认handleChange,但我不能这么做。 非常感谢您的帮助 validationSchema: Yup.object({ name: Yup.string

我的公司有一项任务,我必须显示用户名是否被使用,我正在使用formik和yup验证进行检查,因此目前我在yup验证中添加了一个自定义测试功能,在点击提交按钮时显示用户名是否被使用,我最初的任务是在用户输入用户名时动态显示错误消息,它应该告诉用户是否使用了用户名。 我知道我可能必须操纵formik的默认handleChange,但我不能这么做。 非常感谢您的帮助

         validationSchema: Yup.object({
            name: Yup.string()
                .min(2, "Mininum 2 characters")
                .max(30, "Maximum 30 characters")
                .required("Your name is required"),
            email: Yup.string()
                .email("Invalid email format")
                .test("email", "This email has already been registered", function (email) {
                        return checkAvailabilityEmail(email);
                })
                .required("Your email is required"),
            username: Yup.string()
                .min(1, "Mininum 1 characters")
                .max(15, "Maximum 15 characters")
                .test("username", "This username has already been taken", function (username) {
                        return checkAvailabilityUsername(username);
                })
                .required("You must enter a username"),

你解决了吗?因为我也有同样的问题没有人,我的公司用了其他的方法,所以这个问题还没有解决不幸的是我通过检查api响应代码使它工作,所以如果它给电子邮件已经存在一个特定的响应代码,那么我会照此处理感谢找到了一个解决方案,我也会尝试从我这边检查它。