1 回答
TA贡献1860条经验 获得超8个赞
那么你可以做的是通过将数字输入存储在商店中来控制它们的值:
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
}
希望能帮助到你 :)
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报