初始状态
super(props);
this.state = {
user: {
id: 0,
firstName: '',
lastName: '',
phoneNumbers: ['', '', ''],
}
};
}
我的handleInputChange函数:
handleInputChange = (event) => {
const { user } = this.state;
const name = event.target.name;
const value = event.target.value;
if (name === 'contactNumber1') {
user.phoneNumbers[0] = value;
} else if (name === 'contactNumber2') {
user.phoneNumbers[1] = value;
} else if (name === 'contactNumber3') {
user.phoneNumbers[2] = value;
console.log('hellooo', user.phoneNumbers);
} else {
user[name] = value;
}
const filteredPhoneNumbers = user.phoneNumbers.filter(e => e !== '');
this.setState(prevState => ({
user: {
...prevState.user,
[name]: value,
phoneNumbers: [...filteredPhoneNumbers],
},
}));
}
当我删除一个元素时,上面索引中的元素会填充我刚刚删除的元素,我会缺少什么?*我也因为我的代码而收到此错误-组件将undefined类型的受控输入更改为uncontrol。输入元素不应从受控状态切换到非受控状态(反之亦然)。确定在组件的生命周期中使用受控还是不受控制的输入元素*
您可以尝试像这样解析“ this.state”:
const { user } = JSON.parse(JSON.stringify(this.state));
我认为您是将相同的对象引用给用户缺点