【问题标题】:Yup - run async validation test only on value change是的 - 仅在值更改时运行异步验证测试
【发布时间】:2022-08-05 02:51:41
【问题描述】:

是的,异步验证测试被多次调用。有没有办法只在值发生变化或阻止对相同值的验证检查时调用测试

    const validationSchema = yup.object().shape({
    zipCode: yup.string().required()
        .test(\'invalidZip\', \'ZipCode must be valid\', (value, context) => {
            /**
             * api call to validate zip code
             * this is getting called multiple times even though there is no change in 
             * zipCode.
             * I want to run this test only if there is change in value
             */
            return new Promise.resolve((resolve) => Utils.validateZipCode(value, resolve));
        })
});

    标签: reactjs yup


    【解决方案1】:

    你没有发送代码,所以我不知道你的问题到底是什么,但试试这个: onChange 您的输入或选择仅在值更改时调用您的异步函数,并且仅当您离开输入的焦点时才会触发验证

    <input onChange = {this.props.handleChange} onBlur = {this.props.handleBlur}/>
    

    【讨论】:

      【解决方案2】:

      你解决了你的问题吗?我有完全相同的问题,我只需要验证一次电子邮件,只有在值更改时才重新验证

      【讨论】:

        猜你喜欢
        • 2020-10-05
        • 2019-08-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-31
        • 1970-01-01
        • 2013-08-06
        • 2020-04-26
        • 2019-07-30
        相关资源
        最近更新 更多