簡體   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