我有一个处于状态的array.状态啊.

选项1

onChange(event){
    this.state.arr.push('newvalue');
    ...
    this.setState({some:'val',arr:this.state.arr})
}

Select 2

onChange(event){
    var newArr = this.state.arr;
    ...
    newArr.push('newvalue');
    ...
    this.setState({some:'val',arr:newArr})
}

所以我知道.国家应该被视为不可改变的.但是,像选项1那样使用它,我仍然可以设置它的状态,还是需要像选项2那样使用它,因此总是首先在内存中复制

推荐答案

使用concat的另一种简单方法:

this.setState({
  arr: this.state.arr.concat('new value')
})

Reactjs相关问答推荐

全局上下文挂钩-替代不起作用

包装组件可以避免子组件重新渲染.?

利用OVERPASS API端点计算某建筑的表面积

使用筛选器的Primereact DataTable服务器端分页?

在构建或部署Reaction应用程序时出错

在React中使用映射创建flex组件

定位数组中的一项(React、useState)

设置自定义形状的纹理

组件安装后调用自定义钩子

如何根据用户在react.js中的 Select , Select 多个心形图标?

在遵循 react-navigation 的官方文档时收到警告消息

Zod 验证模式根据另一个数组字段使字段成为必需字段

无法读取未定义的属性(读取值)...TypeError:无法读取未定义的属性(读取值)

将水平滚动视图添加到底部导航选项卡

ReactJS:在导航栏中使用 Select inside Link 组件时如何避免重定向?

如何在 ReactJS 中提交后删除 URL 中的查询参数

使用dayjs时如何在输入类型日期时间本地字段中设置默认值?

将 ref 赋予功能组件以使用内部功能

如何根据react 中的 map 功能一次只打开一个弹出窗口?

使用 useRef(uuid()) 的目的是什么?