在输入名称中使用数组时,处理输入更改并进行反应;
handleInputChange(event) {
const target = event.target;
const value = target.type === 'checkbox' ? target.checked : target.value;
const name = target.name;
this.setState({
[name]: value
});
}
如果输入名称是例如,这将不起作用user[email]
,因为它周围有方阵括号。有谁知道如何使这种通用字符串或数组?
我的状态在下面;
this.state =
{
name: '',
type: '',
user: {
email: '',
}
};
答案 0 :(得分:2)
好的this.setState({ [name]: value });
在嵌套状态下实际上是不可行的,因为很难将名称映射到实际值。
您可以创建其他功能,例如handleUserInputChange
会在user
状态对象中设置值:
handleUserInputChange(event) {
const { target } = event;
const value = target.type === 'checkbox' ? target.checked : target.value;
const { name } = target;
this.setState(previousState => {
return { user: { ...previousState.user, [name]: value } };
});
}