首页 > 解决方案 > 将对象添加到数组中并更改该数组中其他对象的属性

问题描述

如何同时将此对象添加到数组中并将属性更改popupfalse同一数组中的每个其他对象(如果有的话)?

 this.setState({
            map: {
                ...this.state.map,
                areas: this.state.map.areas.concat({
                    coords: [evt.nativeEvent.layerX, evt.nativeEvent.layerY, 15],
                    popup: true,
                })
            }
        });

标签: javascriptarraysreactjs

解决方案


您不能同时执行此操作,但您可以使用Object.assign方法和map为了将popup属性设置为然后false只是concat新项目。

areas: this.state.map.areas.map(item => Object.assign(item, {popup: false})).concat({
   coords: [evt.nativeEvent.layerX, evt.nativeEvent.layerY, 15],
   popup: true,
})

推荐阅读