在我的react应用程序中,运行此代码时得到TypeError: "x" is (not) "y"
:
deletePersonHandler = (personIndex) => {
const { persons } = this.state.persons;
persons.splice(personIndex, 1);
this.setState({ persons });
}
不使用解构时没有问题:
deletePersonHandler = (personIndex) => {
const persons = this.state.persons;
persons.splice(personIndex, 1);
this.setState({ persons });
}
如果有帮助,则此方法作为click属性传递到功能组件中:
persons = (
<div>
{this.state.persons.map((person, index) => {
return <Person name={person.person} age={person.age} click={() => this.deletePersonHandler(index)} changed={this.nameChangedHandler.bind(this)} />;
})}
</div>
);
为什么解构会有所作为?
最佳答案
您正在尝试将this.state.persons
分解为具有persons
属性的对象-但您想要的是persons
的this.state
属性,而不是persons
的this.state.persons
属性(不存在) 。相反,请执行以下操作:
const { persons } = this.state;
关于javascript - TypeError:解构对象后,“x”为(不是)“y”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50422016/