Ich habe eine Formularkomponenten, die eine Liste der Validatorfunktionen übernimmt. Jede dieser Validatorfunktionen verfügt über zwei Parameter, den aktuellen Wert der Formularsteuerung und das Formularmodell. Ich frage mich, ob es eine Möglichkeit gibt, festzustellen, ob eine der Funktionen als Formmodell bezeichnet wird. Wenn keiner meiner Validator -Funktionen auf das Formularmodell zugegriffen hat, weiß ich, dass alle Validatoren keine Cross -Feld -Validatoren waren und ich die nächste Runde keine Validierung für Formmodelländerungen ausführen muss, da keiner der Validatoren darauf zugreifen. < /P>
const formModel = {
firstname: 'Bill',
lastname: 'Gates',
departureDate: new Date(),
returnDate: new Date()
};
const value = 'Test';
const nonAccessValidators = [
v => v ? null : 'required',
v => v?.length ?? 0 > 1 ? null : 'incomplete'
];
const accessValidators = [
v => v ? null : 'required',
(v, m) => v > m.departureDate ? null : 'before-date'
];
const runValidators = (value, formModel, validators) => validators
.reduce((acc, validator) => {
const error = validator(value, formModel);
// this is where I want to set acc.formModelAccessed
if (error) {
acc.errors.push(error);
}
return acc;
},
{ formModelAccessed: false, errors: [] }
);
const nonAccessErrors = runValidators(value, formModel, nonAccessValidators);
const accessErrors = runValidators(value, formModel, accessValidators);
< /code>
Ich suche nach einer Möglichkeit, zu erkennen, ob eine dieser Funktionen den zweiten Parameter verwendet. Wenn nicht, dann weiß ich, dass ich die Validierung auf Modelländerungen überspringen kann, wenn sich die Validatoren nicht geändert haben. Ich möchte die Validatoren einfach halten und möchte das Formmodel nicht in ein anderes Objekt einwickeln.
Gibt es eine Möglichkeit, ob eine Funktion, die als Parameter bezeichnet wird oder nicht in JavaScript, bezeichnet wird? ⇐ JavaScript
-
- Similar Topics
- Replies
- Views
- Last post