类型错误:解构对象后“x”是(不是)“y”

在我的反应应用程序中,当我运行此代码时,我得到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;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章