繁体   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