首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用剪接更新React中的状态

使用剪接更新React中的状态
EN

Stack Overflow用户
提问于 2019-06-21 20:42:24
回答 1查看 4.2K关注 0票数 3

我正在学习React,在其中一个答案中,我看到了在从数组中删除项时使用的剪接方法。链接到解决方案:从react状态数组中删除项

要从数组中删除元素,只需执行以下操作:

Array.splice(索引,1);在您的例子中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
removePeople(e) {
  var array = [...this.state.people]; // make a separate copy of the array
  var index = array.indexOf(e.target.value)
  if (index !== -1) {
    array.splice(index, 1);
    this.setState({people: array});
  }
},

期望:与许多其他博客一样,我们使用筛选方法从列表中删除项目。为什么答案是被提高,而我们这里没有使用过滤方法?

EN

回答 1

Stack Overflow用户

发布于 2019-06-21 22:03:10

没有这样的规则,比如为此使用此方法,以及为此使用该方法。然而,要确保React知道状态的变化,需要满足两个条件。

  1. 使用setState更新状态
  2. 状态对象中的顶级键需要使用新的值或引用来设置。也就是说,在肤浅的比较中显得不同。

您所链接的已接受的答案满足了这两项要求。关键是,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var array = [...this.state.people]    // make a separate copy of the array

注意注释。原始海报清楚地表明,他正在使用扩展语法创建一个对数组的新引用。他稍后执行的拼接操作是在这个新数组上执行的,不管他以后执行什么操作,在将新数组设置为状态的一部分时,React将至少调用一次呈现方法。

为什么要过滤?

过滤器通过谓词对数组进行筛选,并返回一个新的数组对象和结果。在某些情况下,这可能更灵活和方便使用,但它有完全不同的行为。Splice允许通过索引精确地删除元素的连续块,而filter则删除与谓词不匹配的所有元素。

使用的决定取决于什么是最适合用例的。只要满足上述条件,React就会重新渲染.

注意:在出现的情况下,过滤器将是性能的选择,因为它只在数组上循环一次。连接操作需要在它之前执行、扩展和indexOf操作,这将导致数组上的多个枚举。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56712647

复制
相关文章
React技巧之状态更新
原文链接:https://bobbyhadz.com/blog/react-update-state-when-props-change[1]
chuckQu
2022/08/19
9070
React技巧之状态更新
react源码解析12.状态更新流程
我们重点看下重点看下this.setState和this.forceUpdate,hook在第13章讲
长腿程序员165858
2023/01/03
1K0
react源码解析12.状态更新流程
我们重点看下重点看下this.setState和this.forceUpdate,hook在第13章讲
全栈潇晨
2021/06/15
1.1K0
react源码解析12.状态更新流程
我们重点看下重点看下this.setState和this.forceUpdate,hook在第13章讲
zz1998
2021/12/15
8320
react源码解析12.状态更新流程
我们重点看下重点看下this.setState和this.forceUpdate,hook在第13章讲
zz1998
2021/12/03
9630
关于React中状态保存的研究
在使用react搭配react-router做应用的时候,你可能遇到这样的问题,当我从第一个页面过渡到第二个页面,然后返回之后,发现之前的页面的状态全部不见了,即回到了初始的状态。 这点在页面存在多个TAB页或者多条件筛选的时候体验会更加明显,这时候我又不得不点击我之前选择的页签,重新选择筛选条件,然后再进行搜索。因此,在这种情况下,保存之前的状态显得尤为亟待解决,下面是自己实践出来的几种方法,做一下分享,同时希望和各位一起探讨,看能不能有什么更好的办法。 代码:github 解决方案一:子路由方式 //
糊糊糊糊糊了
2018/05/09
4.3K0
关于React中状态保存的研究
React 回忆录(四)React 中的状态管理
大家好,又见面了,我是你们的朋友全栈君。 Hi 各位,欢迎来到 React 回忆录!? 在上一章中,我介绍了使用 React 渲染界面元素的方法,以及在这个过程中蕴含的“组件化”想想。在本章中,我们将
全栈程序员站长
2022/07/21
2.4K0
【React】377- 实现 React 中的状态自动保存
移动端中,用户访问了一个列表页,上拉浏览列表页的过程中,随着滚动高度逐渐增加,数据也将采用触底分页加载的形式逐步增加,列表页浏览到某个位置,用户看到了感兴趣的项目,点击查看其详情,进入详情页,从详情页退回列表页时,需要停留在离开列表页时的浏览位置上
pingan8787
2019/10/15
2.9K0
【React】377- 实现 React 中的状态自动保存
react-navigation 使用笔记 持续更新中
React-Navigation是目前React-Native官方推荐的导航组件,代替了原用的Navigator。最近开始接触,做个笔记
木子墨
2018/12/12
7830
React报错之无法在未挂载的组件上执行React状态更新
原文链接:https://bobbyhadz.com/blog/react-cant-perform-react-state-update-on-unmounted-component[1]
chuckQu
2022/08/19
2.3K0
React技巧1(状态组件与无状态组件的使用)
本教程总共5篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1.React 技巧1(状态组件与无状态组件的使用) ----2018.01.04 2.React 技巧2(避免无意义的父节点)----2018.01.05 3.React 技巧3(如何优雅的渲染一个List)----2018.01.06 4.React 技巧4(如何处理List里面的Item)----2018.01.07 5.React 技巧5(TodoList实现)----2018.01.08 开发环境
前端人人
2018/04/11
1.8K0
React技巧1(状态组件与无状态组件的使用)
使用webpack实现react的热更新
app 中自然就是源代码,app/index.js是最外层的js文件。因为涉及到是热更新,所以当然是在我们的 webpack.dev.js 文件下操作。
Nealyang
2019/09/29
2.9K0
使用webpack实现react的热更新
Flutter更新showDialog以及showModalBottomSheet中的状态中的内容
很多人在使用 showDialog 或者 showModalBottomSheet 的时候,都会遇到这个问题:通过 setState 方法无法更新当前的dialog。
拉维
2019/10/14
9.1K1
React源码分析与实现(二):状态、属性更新 -> setState
setState的源码比较简单,而在执行更新的过程比较复杂。我们直接跟着源码一点一点屡清楚。
Nealyang
2019/09/29
1.2K0
React源码分析与实现(二):状态、属性更新 -> setState
React篇(025)-我们为什么不能直接更新状态?
正确方法应该是使用 setState( ) 方法。它调度组件状态对象的更新。当状态更改时,组件将会重新渲染。
齐丶先丶森
2022/05/12
1.6K0
React源码分析8-状态更新的优先级机制
实现这一目的的本质就是在低优先级任务执行时,有更高优先级任务进来的话,可以打断低优先级任务的执行。
goClient1992
2022/10/13
1.2K0
React hooks 最佳实践【更新中】
导语 随着目前需求更新的节奏越来越快,我们目前更多时候原因使用 function component 来代替类的写法,在 hooks 推出之后,我们也可以完全使用 function component 来代替类的写法;但是俗话说的好,没有什么东西是十全十美的,在本次整理总结 hooks 库的过程中,有体验到 hooks 带来的体验提升,同时也存在对比类生命周期写法中不足的地方。 01 React hooks的思想 首先对于原先的类组件而言,最好的思想是封装,我们使用的constructor、componen
用户1097444
2022/06/29
1.3K0
React hooks 最佳实践【更新中】
react学习:React状态
实现一个点赞按钮。点击数字增加 一:建立LikeButton.js  import React from 'react' class LikeButton extends React.Component{ constructor(props){ super(props) this.state={ likes:0 } // this.increaseLikes=this.increaseLikes.bind
爱明依
2019/04/22
6990
react学习:React状态
在 localStorage 中持久化 React 状态
我们将创建一个日历应用,就像谷歌日历。这个应用可以让我们在月份、周和日之间进行切换。
Jimmy_is_jimmy
2023/04/22
3.1K0
在 localStorage 中持久化 React 状态
【Flink】【更新中】状态后端和checkpoint
有状态的计算是流处理框架要实现的重要功能,因为稍复杂的流处理场景都需要记录状态,然后在新流入数据的基础上不断更新状态。下面的几个场景都需要使用流处理的状态功能:
zeekling
2023/09/06
5010

相似问题

使用componentDidUpdate更新react中的状态

10

使用状态更新对象的react redux状态

147

使用中继更新React状态

31

使用react立即更新状态

13

使用_.merge更新react状态?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文