繁体   English   中英

React - 在组件状态的数组内向对象添加属性

[英]React - Adding a property to an object inside of array in component's state

我正在获取状态中的一个对象数组,我正在尝试为每个对象添加一个属性。
问题是我可以看到我的属性被添加到每个对象,但是当我映射所有这些对象并尝试console.log ,我得到了undefined

添加属性

addFavourites() {
        let data = this.state.data.map((e) => {
            e.favourite = false;
            return e;
        });
        return data;
    }
state = {
        data: []
    }

addFavourites在这里调用:

getItem = () => {
        this.service
            .mergeData()
            .then((body) => {
                this.setState({
                    data: body
                },
                () => {
                    this.addFavourites();
                },
                () => {
                    this.dataToFilter();
                });
            });
    }

    componentDidMount(){
        this.getItem();
    }

在渲染功能中,我看到我的所有对象,包括收藏

console.log(data.map((e) => e));

但这给出了一个未定义的数组

console.log(data.map((e) => e.favourite));

我怎么解决这个问题?

首先,欢迎! 您应该更清楚地知道这个问题是关于React的。

现在回答,每个状态修改都是使用setState ,所以你的addFavourites函数应该是这样的:

addFavourites() {
    let data = this.state.data.map((e) => {
        e.favourite = false;
        return e;
    });
    this.setState({ data: data });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM