如何从另一个文件导入 yup 模式?
How to import a yup schema from another file?
我想通过将模式放在单独的文件中来组织我的表单代码。我注意到,当我导出一个 yup 模式,然后将其导入另一个模式时,它总是失败。模式数据似乎是正确的(当我控制日志时),但是,导入模式的验证从未运行。
示例:
myAdditionalSchema.js
export const otherSchema = object({
someValue: string(),
})
myMainSchema.js
import { otherSchema } from "myAdditionalSchema"
export const constMainSchema = object({
myValue: string(),
}).concat(otherSchema)
如果我将所有这些模式都放在同一个文件中,我不会遇到这个问题,只有在导入它们时才会遇到。
例如,这个有效:
export const constMainSchema = object({
myValue: string(),
}).concat(object({
someValue: string(),
}))
这也有效:
const otherSchema = object({
someValue: string(),
})
export const constMainSchema = object({
myValue: string(),
}).concat(otherSchema)
导入它们时我必须做些什么不同的事情吗?对于上下文,我将其与 Formik 一起使用。
事实证明这确实有效。 number().transform()
存在问题,导致在导入架构时出现错误(我不完全理解)。但是,当在同一文件中创建架构时,该错误不会持续存在。
我想通过将模式放在单独的文件中来组织我的表单代码。我注意到,当我导出一个 yup 模式,然后将其导入另一个模式时,它总是失败。模式数据似乎是正确的(当我控制日志时),但是,导入模式的验证从未运行。
示例:
myAdditionalSchema.js
export const otherSchema = object({
someValue: string(),
})
myMainSchema.js
import { otherSchema } from "myAdditionalSchema"
export const constMainSchema = object({
myValue: string(),
}).concat(otherSchema)
如果我将所有这些模式都放在同一个文件中,我不会遇到这个问题,只有在导入它们时才会遇到。
例如,这个有效:
export const constMainSchema = object({
myValue: string(),
}).concat(object({
someValue: string(),
}))
这也有效:
const otherSchema = object({
someValue: string(),
})
export const constMainSchema = object({
myValue: string(),
}).concat(otherSchema)
导入它们时我必须做些什么不同的事情吗?对于上下文,我将其与 Formik 一起使用。
事实证明这确实有效。 number().transform()
存在问题,导致在导入架构时出现错误(我不完全理解)。但是,当在同一文件中创建架构时,该错误不会持续存在。