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
? ? ]
? },
}
添加回答
舉報