Yup.string.when 将始终给出未定义的结果。如何将字符串值传递给 .when 方法

Yup.string.when will always give the result undefined. How can i pass a string value into the .when method

在我的代码下方。

出于某种原因,当我将它放入 .when 时,iscountrycodeundefined。 在 console.log 中,结果是 'BE'

export function getCheckoutFormSchema(t?: any, iscountryCode?: string) {`
    console.log(iscountryCode)`
    let schema = Yup.object().shape({`
       zip: Yup.string()
            .when(iscountryCode, {
                is: 'BE',
                then: Yup.string()`

有人知道为什么会这样吗?

我想你忘了在 iscountryCode 字段周围应用引号 ('')。

试试这个 -

let schema = Yup.object().shape({ 
   zip: Yup.string().when('iscountryCode', { is: 'BE', then: Yup.string()...}
)

还有一点你需要事实核查-

  • 您的架构必须包含您正在使用的字段 'iscountryCode',
    let schema = Yup.object().shape({ 
    iscountryCode: Yup.string(),
    zip: Yup.string().when('iscountryCode', { is: 'BE', then: Yup.string()...}
    

)

both fields should be at the sibling level.