【发布时间】:2020-11-13 22:14:14
【问题描述】:
我在最近的项目中遇到了一个问题,我有一个包含基本用户详细信息的表单,例如 First Name、Last Name、Email、Mobile No、OTP。这些字段是我在react-hook 中创建的状态。
现在我必须编写一个handleInputChange 函数,它将两个参数作为输入,即(label, value),并更新相应的状态该字段的值。
另外,如果我必须在我的handleInputChange中设置状态之前触发我的validation函数,那么如何实现呢。
请向我推荐 optimal 解决方案,以便如果将来我的 UI 中有 10+ 个字段,如何动态更新它们的状态。
下面的代码-sn-p 是我的Class-based 组件,我想通过React-Hooks 在我的functional 组件中实现类似的行为。
初始状态声明:
this.state = {
name: { value: "", error: "" },
city: { value: "", error: "" },
email: { value: "", error: "" },
contact_number: { value: "", error: "" },
otp_data: {}
};
我的handleInputChange函数:
handleInputChange = (name, value) => {
let label = "";
this.setState({
[label]: {
...this.state[label],
value: value,
error: validateFields(label, value)
}
});
};
【问题讨论】:
-
如果您能以minimal reproducible example 的形式包含一些代码,将会很有帮助。
标签: javascript reactjs optimization react-hooks react-functional-component