簡體   English   中英

向現有狀態添加新值-React Native

[英]Add new values to existing state - React Native

this.setState ({
      information: [{
                   country: 'country1',
                   place: 'place1'
                   }]
});

這個setState(); 為每個循環執行多次。 問題在於現有值將在每個循環中被覆蓋。 我必須更改以在每個循環中“添加”新值嗎?

更新:我為下面的問題找到了一個可行的解決方案:

this.setState (state => ({
                    countries: [...state.countries,
                        {
                            name: child.key.toString(),
                            uri: snapshot.val().toString()
                        }
                    ]
                }));

您可以這樣操作:

        this.setState(state=> ({
            information: {
              country: [...state.information.country, "country1"],
              place:   [...state.information.place, "place1"]
            }
          })
        );
        console.log(this.state.information);

您不能真正進行推送,因為它會直接使狀態發生變化,並且即使隨后再“重置”狀態也可能導致易於出錯的代碼。 例如,它可能導致某些生命周期方法(例如componentDidUpdate)不會觸發。

因此,使用ES6,您可以使用傳播算子。

this.setState(prevState => ({
    information: {
      country: [...state.information.country, "country1"],
      place:   [...state.information.place, "place1"]
    }
  })
);
console.log(this.state.information);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM