You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Yup实现下拉选择器仅接受US、UGX两个指定值的校验

实现方案

Yup 内置的 oneOf 方法可直接实现字段值必须属于指定枚举列表的校验需求,你只需要在原有校验规则基础上追加该方法即可。

修改后的校验代码

const signUpSchema = Yup.object().shape({
    countrySelector: Yup.string()
        .required('Please select the country')
        // 第一个参数为允许的取值数组,第二个参数为校验不通过时的自定义报错提示
        .oneOf(['US', 'UGX'], '仅允许选择 US 或 UGX')
});

规则说明

  • 配置完成后,若用户选择了 -、DE 等不在允许范围内的值,会直接触发校验失败,抛出你指定的错误提示
  • 如果需要从交互层面减少用户误操作,可直接修改JSX的下拉选项,移除非法选项即可,参考代码如下:
<Formik
    validationSchema={signUpSchema}
    onSubmit={handleSignUpAsync}
    initialValues={{
        countrySelector: ''
    }}
>
    <Form>
        <Field
            as="select"
            className="browser-default custom-select"
            name='countrySelector'
        >
            <option value="">请选择国家</option>
            <option value="US">US</option>
            <option value="UGX">UGX</option>
        </Field>
    </Form>
</Formik>

内容的提问来源于stack exchange,提问作者Lutaaya Huzaifah Idris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:06:03