スキーマを作成しましたが、期待どおりに検証されていないようです。スキーマ構文に何か問題があると思いますが、それを理解できません。募金活動が完了した場合にのみ必要になるため、募金活動が完了するまで、タイトルまたはターゲットのエラー メッセージが表示されないことを期待しています。多くの組み合わせを試しましたが、期待どおりに機能するものはありません。これらの 2 つは、必要なものに最も近いものです。
スキーマ試行 1 : 4 つのエラー メッセージ、3 つの必須エラー、およびデータが "then" スキーマと一致する必要があることを示す 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 : 2 つのエラー メッセージが表示されます。1 つの必須エラーと 1 つのエラーは、データが "then" スキーマと一致する必要があることを示していますが、これは正しいですが、募金活動が完了すると有効になり、タイトルとターゲットの必須エラーが表示されると予想されます。また、エラーには定義済みのカスタム エラー メッセージはありません。
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 を使用したカスタム エラー メッセージと組み合わせて使用する方法が明確ではありません。どんな助けでも大歓迎です!ありがとう!