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',
},
};
Теперь я использовал эту схему и схему пользовательского интерфейса для создания формы 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 отображает форму пользовательского интерфейса, и когда поле пусто, выдается стандартное сообщение об ошибке, например is a required property
, теперь здесь мне нужно переопределить свое собственное сообщение, для этой цели https://github.com/ajv-validator/ajv-errors оказался полезным и добавил свойство errorMessage
в мою схему с ключом required
, имеющим мой пользовательское сообщение, также я добавил require('ajv-errors')(ajv);
по мере необходимости, но все равно получаю сообщение об ошибке по умолчанию, а не то, которое я перезаписываю в errorMessage
.
Я что-то упустил здесь? Или у меня есть другой способ переопределить сообщение по умолчанию. Кроме того, наряду с required
у меня будет много проверок, таких как minLength
, maxLength
и т. д., чье сообщение по умолчанию мне, возможно, придется переопределить.
Также я ожидаю много других свойств в схеме, поэтому добавление errorMessage
в каждое свойство может быть не очень эффективным, но если это единственное решение, которое я должен использовать :)