TLDR:我需要自定义 JSON 表单提供的默认错误消息。例如,如果字段是required
JSON 形式,则给出错误is a required property
,我希望它返回错误消息文本,例如Invalid input....
我创建了一个带有类似模式的JSON 表单
{
type: 'object',
properties: {
name: {
type: 'string',
minLength: 3,
},
},
required: [
'name',
],
errorMessage: {
required: 'INVALID INPUT. This is a required field',
},
};
现在我使用了这个模式和一个 UI 模式来创建一个 JSON 表单
const ajv = createAjv();
require('ajv-keywords')(ajv);
require('ajv-errors')(ajv);
<JsonForms
schema={schema}
uischema={uischema}
data={data}
renderers={CustomRenderers}
cells={vanillaCells}
onChange={onChange}
ajv={ajv}
/>
上面的 JSON 表单呈现一个 UI 表单,当字段为空时会给出标准错误消息,例如is a required property
,现在我需要用我自己的自定义消息覆盖,为此目的https://github.com/ajv-validator/ajv-errors发现errorMessage
在我的模式中有用并添加了属性,required
键具有我的自定义消息,我也require('ajv-errors')(ajv);
根据需要添加了它,但我仍然收到默认错误消息,而不是我用 in 覆盖的错误消息errorMessage
。
我在这里错过了什么吗?或者我可以通过其他方式覆盖默认消息。此外,required
我还将进行很多验证minLength
,例如maxLength
等,我可能必须覆盖其默认消息。
此外,我期待架构中有很多其他属性,因此添加errorMessage
每个属性可能不是很有效,但如果这是我必须采用的唯一解决方案:)