在状态数组中添加值的最佳方法是什么

2024-02-08

我有一个状态数组,比方说this.state.arr。 我想向这个状态属性添加一些内容,然后更改更多属性。

Option 1

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

Option 2

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

所以...我知道this.state应该被视为不可变的,但是可以像选项 1 一样使用它吗?我仍然从中设置状态,或者我是否需要使用像选项 2 这样的东西,因此总是首先在内存中制作副本?


目前来说,这是最好的办法。

this.setState(previousState => ({
    myArray: [...previousState.myArray, 'new value']
}));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在状态数组中添加值的最佳方法是什么 的相关文章

  • React 状态总是从 Fabricjs 的回调中返回先前(或初始)状态

    下面的代码是我的最小问题重现组件 它初始化织物画布 并处理 模式 状态 模式状态决定画布是否可以编辑 并且一个简单的按钮控制该状态 问题是 即使mode setMode工作正常 意思是 单击按钮后组件分析器显示正确的状态 按钮内的文本也显示
  • 如何处理 React JSX 中的长类名?

    假设我在 React JSX 中渲染这个组件 render return h1 Some text h1 这些类触发我的 JS linter 的行太长 而且很难阅读 怎样才能分开长className将 React 组件中的属性分成多行而不破
  • 如何使用函数组件和 React Router v5 拦截 React SPA 中的后退按钮

    我正在 React 中的 SPA 中工作 不使用 React Router 来创建任何路由 我不需要允许用户导航到特定页面 想想多页调查问卷 按顺序填写 但是 当用户按下后退按钮时在浏览器上 我不希望他们退出整个应用程序 我希望能够在用户按
  • React 路由器路由加载器不适用于嵌套组件

    我正在使用 React Router v6 我想在组件加载之前使用新的加载器来加载数据 所以我有以下内容 在我的index js中 const router createBrowserRouter createRoutesFromEleme
  • 如何将数组与 setState 一起使用?

    我目前正在使用以下命令将数组映射到 setState 但没有设置任何内容 也没有记录任何错误 如果我明确地逐行写出它 它就会起作用 关于如何解决这个问题有什么想法或建议吗 使用数组设置状态 不设置状态 const myData messag
  • 让Webpack不捆绑文件

    所以现在我正在使用一个原型 我们使用 webpack 用于构建 tsx 文件和复制 html 文件 和 webpack dev server 之间的组合来提供开发服务 正如您可以假设的那样 我们也使用 React 和 ReactDOM 作为
  • 如何将 create-react-app 与较旧的 React 版本一起使用?

    使用时创建反应应用程序 https github com facebookincubator create react app with 自定义反应脚本 https github com kitze custom react scripts
  • 如何防止字符串被截留

    我的理解 可能是错误的 是 在 C 中 当你创建一个字符串时 它会被实习到 实习生池 中 这保留了对字符串的引用 以便多个相同的字符串可以共享操作内存 但是 我正在处理很多很可能是唯一的字符串 一旦完成每个字符串 我需要将它们从操作内存中完
  • 为什么结构中“[0]byte”的位置很重要?

    0 byte在golang中不应该占用任何内存空间 但这两个结构体的大小不同 type bar2 struct A int 0 byte type bar3 struct 0 byte A int 那么为什么这个位置 0 byte这里重要吗
  • 无法验证 CSRF 令牌的真实性 Rails/React

    我的 Rails 应用程序中有一个 React 组件 我正在尝试使用它fetch 发送一个POST对于我在本地主机上托管的 Rails 应用程序 这给了我错误 ActionController InvalidAuthenticityToke
  • 鼠标输入时反应显示按钮

    我有一个反应组件 它包含如下方法 mouseEnter console log this is mouse enter render var album list const albums this props if albums user
  • 哪个更快:堆栈分配或堆分配

    这个问题听起来可能相当简单 但这是我与另一位合作的开发人员进行的辩论 我小心翼翼地在可能的地方进行堆栈分配 而不是堆分配它们 他一边跟我说话 一边看着我 并评论说没有必要 因为他们的表现是一样的 我总是有这样的印象 堆栈的增长是恒定的时间
  • 是否有其他方法可以释放 C 中动态分配的内存 - 不使用 free() 函数?

    我正在为测试而学习 我想知道这些是否等同于 free ptr malloc NULL calloc ptr realloc NULL ptr calloc ptr 0 realloc ptr 0 据我了解 这些都不起作用 因为 free 函
  • 使用相同的 props 来反应备忘录重新渲染?

    有一个相当简单的功能组件 如果给出相同的道具 我想阻止它被重新渲染 下面是网上找的 貌似不行 知道我应该做什么吗 就我而言 props 由一组对象组成 其中一些也是嵌套对象 这也许是一个线索 export const DataTable R
  • Material UI 组件中的媒体查询

    我在 React js 项目中使用 Material UI 组件 出于某种原因 我需要对某些组件进行自定义 以使其根据屏幕宽度进行响应 我已经添加了media query并将其作为组件中的样式属性传递 但不起作用 知道吗 我正在使用这样的代
  • 哪种反应钩子与 firestore onsnapshot 一起使用?

    我在我的 React Native 应用程序中使用了大量的 Firestore 快照 我也在使用 React hooks 代码看起来像这样 useEffect gt someFirestoreAPICall onSnapshot snaps
  • 如何解构 React props 并仍然访问其他 props?

    我很好奇如果我想要所有的 props 但也想要解构单个属性 那么组件的参数 props 是否可以像导入一样解构 我想这更像是一个 JavaScript 问题 而不是一个 React 问题 但是举个例子 import React useEff
  • 创建 html 结构,每个 li 中仅允许 3 个 div 元素。在 React + underscore.js 中

    这是以下内容的位副本如何创建每个 li 中仅允许 3 个 div 元素的 html 结构 在 React underscore js 中 https stackoverflow com questions 38008023 how to c
  • 过滤嵌套的 JSON 对象

    我有一个搜索栏 您可以在其中输入员工姓名 它应该根据过滤器返回姓名 我有一个嵌套的 JSON 对象 如下所示 我需要深入了解该对象以访问数组中的员工姓名 您可以看到我尝试实现的多个选项 它们已被注释掉 我的问题是代码没有过滤名称并返回所有名
  • 在React组件中使用的字符串变量中插入html

    我正在为我的投资组合网站构建一个反应应用程序 目前我已经用 JSX 编写了应用程序 因此我可以添加以下内容 class Project extends React Component render return div h1 this pr

随机推荐

  • twilio 如何获取可能的用户

    我从服务器检索了访问令牌并连接了 JavaScript SDK 聊天客户端 例如so https www twilio com docs chat initializing sdk clients javascript 1 我创建了一个类似
  • 未检测到 Web 服务?

    我正在尝试在下面托管此服务 该服务运行良好 但是当我在不同的 Visual Studio 运行时中打开一个新项目并尝试添加 Web 服务时 它找不到任何东西 不在指定的地址或本地计算机上的任何位置 下面的代码似乎只有当我在同一解决方案中运行
  • 如何使用JQuery选择第n个选项

    我有以下 HTML
  • 在 php 中将标头添加到 file_get_contents

    我是一个全新的 PHP 新手 想要一个客户端程序来调用 URL Web 服务 我正在使用 file get content 来获取数据 如何向使用 file get content 发出的请求添加额外的标头 我也在考虑使用 cURL 我想知
  • ios:如何显示“选择无线连接”弹出窗口?

    如果没有互联网连接 并且您使用 Ipad 或 Iphone 启动 Safari 应用程序 则会出现一个弹出窗口 显示 选择无线网络 有没有办法在我想要的时候强制此弹出窗口显示在我的应用程序中 问题是 我的应用程序中有一个按钮可以将用户连接到
  • Python / Selenium / Firefox:无法使用指定的配置文件路径启动 Firefox

    我尝试使用指定的配置文件启动 Firefox firefox profile webdriver FirefoxProfile Users p2mbot projects test firefox profile driver webdri
  • 按名称调用属性设置器的最佳方法是什么?

    我正在构建一个通用 UI 它可以连接到一系列底层对象属性 因此我想按名称调用 getter 和 setter 我尝试过使用 NSInspiration 也看到其他人使用setValue forKey 但我想用最快的方法 如果我保留对 NSI
  • 实体框架以及类似的地方[重复]

    这个问题在这里已经有答案了 我正在使用这个指令 db user db CBR User FirstOrDefault p gt p Codice Fiscale code 我想使用 like 运算符代替 来管理不区分大小写 怎样才能做到呢
  • 禁用 UIWebView 中特定 HTML 元素的数据检测器

    有谁知道是否可以仅针对特定的 HTML 元素禁用 UIWebView 中电话号码 电子邮件地址等的数据检测器 我希望检测器对于加载到 UIWebView 中的大部分内容都处于活动状态 但在某些区域禁用它 如果这是可能的 我假设它可以通过在加
  • 我的 AVPlayer 的内存在哪里?如何取回它?

    我正在同时播放大量视频AVPlayer 为了减少加载时间 我将相应的视图存储在NSCache 这种方法效果很好 直到达到一定数量的视频 视频就会停止播放 甚至不再出现 没有错误 日志或内存警告 特别是 我正在听UIApplicationDi
  • Fedora 19 上的 Metasploit msfconsole method_missing

    我使用以下命令在 Fedora 19 上安装了metasploit这份来自 Fedora 的指南 http fedoraproject org wiki Metasploit 完成我运行的所有步骤后微软控制台并得到以下错误 usr loca
  • nfsnobody 用户权限

    我已经在两台 CentOS 6 64 机器之间设置了 NFS 文件共享 在服务器上 共享的文件夹最初由 root 用户拥有 在客户端上 它显示为 nfsnobody 所有 当我尝试从客户端写入该文件夹时 出现权限错误 因此 我将服务器上的文
  • 将 google plus 登录添加到 ionic 应用程序

    我正在尝试将 google plus 登录添加到我的ionic app 点击此链接后出现错误 https ionicthemes com tutorials about google plus login with ionic framew
  • 推荐一个适合偶尔使用的好的实体关系图构建工具? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 免费软件是一个优点 您能否用一句话描述一下为什么它应该足够适合偶尔使用 编辑 你可能会检查这个很酷link http www refere
  • TCP握手可靠性

    我其实想知道 在 TCP 握手中 为什么客户端需要 ack 返回来完成握手 在syn和syn ack之后 双方都有足够的信息来启动数据 tcp仍然要求客户端的ack移动到已建立的状态 问题是 为什么这种三向握手是实现可靠性的必要和充分条件
  • 下划线覆盖 NSAttributedString 中的文本

    我正在尝试创建一个属性字符串 但下划线覆盖了我的文本 而不是出现在它后面 有没有办法来解决这个问题 我正在使用以下代码 let paragraphStyle NSMutableParagraphStyle paragraphStyle li
  • 将 IP 地址输入 EC2 安全组规则时应使用什么格式?

    我正在尝试配置从堡垒主机 位于公共子网中 到同一 VPC 中的私有 linux 实例 位于私有子网中 的安全 ssh 连接 当我为我的私有 Linux 实例添加安全组规则时 最初它显示的规则为 请注意 在添加堡垒主机的 IP 地址之前 水印
  • CSS居中技巧[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Jquery 选择元[property=og:image]?

    我想在 Jquery 中选择网页中的主照片 我只有 url 页面 所以我决定使用为 Facebook 共享编写的元 我想选择的内容 元属性 og 图像 内容 http blablabla jpg 我写了这个 但它不起作用 meta prop
  • 在状态数组中添加值的最佳方法是什么

    我有一个状态数组 比方说this state arr 我想向这个状态属性添加一些内容 然后更改更多属性 Option 1 onChange event this state arr push newvalue this setState s