Что вы можете сделать, так это настроить числовые входы, сохраняя их значения в хранилище:
state = {
// other state,
inputs: {}
}
, а затем в onChangeHandler
установить значение каждого входа в состоянии:
function onChangeHandler(e) {
const { name, value } = e.target;
this.setState({
inputs: {
...this.state.inputs,
[name]: value
}
})
}
тогда, когда ваша форма отправлена, вы можете добавить проверку, чтобы увидеть, являются ли значения уникальными или нет, есть много способов сделать это, что я делаю здесь, это удаляю дубликаты из массива и затем проверяю длина массива в зависимости от значений в состоянии:
function handleSeedingSubmit(e) {
e.preventDefault();
const { inputs } = this.state;
const valuesInState = Object.values(input);
const uniqueValuesArr = [...new Set(valuesInState)];
const areInputsValid = valuesInState.length === uniqueValuesArr.length;
if (!areInputsValid) {
// set Error here
return;
}
// Hurray!! Inputs are valid
// Handle Success case here
}
Надеюсь, это поможет:)