3 回答
TA贡献1966条经验 获得超4个赞
实际上没有“好的”方法来做到这一点,但这有效:
function isRequired(field){ return schema.fields[field]._exclusive.required || false }
注意:schema.fields[field]._exclusive.required
如果需要或未定义,则返回 true。
TA贡献1789条经验 获得超8个赞
测试 exclusiveTests 而不是 _exclusive 对我有用。
const isRequired =
validationSchema?.fields[aField.name]?.exclusiveTests?.required || false;
TA贡献1829条经验 获得超9个赞
const isFieldRequired = (validationSchema, id) =>
validationSchema
.describe()
.fields[id].tests.some(({ name }) => name === 'required')
test这将检查特定字段中是否有name等于'required'. 例如:
const validationSchema: AnyObject = object({
username: string().required(),
email: string().email().required(),
})
将产生一个看起来像这样的模式fields:
{
username: {
...
tests: [
{name: 'required', ...}, // is required
]
},
email: {
...
tests: [
{name: 'email', ...},
{name: 'required', ...}, // is required
]
},
}
添加回答
举报