Я написал схему, но, похоже, она не проходит проверку, как я ожидал. Я предполагаю, что что-то не так с синтаксисом моей схемы, но не могу понять это. Я ожидаю, что сообщения об ошибках для названия или цели не появятся до тех пор, пока сбор средств не будет завершен, поскольку они требуются только в том случае, если сбор средств завершен. Я пробовал много комбинаций, но ни одна из них не работает должным образом, эти две наиболее близки к тому, что мне нужно.
Попытка создания схемы 1: отображаются 4 сообщения об ошибках, 3 обязательные ошибки и 1 ошибка о том, что данные должны соответствовать схеме "тогда".
const schema = {
required: ['fundraiser'],
if: {
properties: {
fundraiser: { type: 'string' },
},
},
then: {
required: ['title', 'target'],
},
errorMessage: {
required: {
fundraiser: 'Please select an option',
title: 'Please enter a title',
target: 'Please enter a target',
},
},
};
Вторая попытка схемы: показывает 2 сообщения об ошибках, 1 обязательную ошибку и 1 ошибку, говорящую о том, что данные должны соответствовать схеме "тогда", которая является правильной, но затем, когда я завершаю сбор средств, допустимый становится истинным, и я ожидаю, что затем увижу обязательные ошибки для заголовка и цели. Также нет ошибок с моими определенными пользовательскими сообщениями об ошибках.
const scema = {
if: {
properties: { fundraiser: { minLength: 2 } },
then: { required: ['title', 'target'] },
},
then: { required: ['fundraiser'] },
errorMessage: {
required: {
fundraiser: 'Please select an option',
title: 'Please enter a title',
target: 'Please enter a target',
},
},
};
Я почти уверен, что делаю что-то не так со своей схемой, но из документации неясно, как использовать if/then в сочетании с пользовательскими сообщениями об ошибках с использованием ajv-errors. Любая помощь будет принята с благодарностью! Спасибо!