React:给定一个数组,有效地以相反的顺序渲染元素

2024-04-10

我目前以典型的 React 风格渲染一个列表。该列表作为数组道具传递,我像这样映射它:

{this.props.myList.map(createListItem, this)}

因此,当添加新元素时,看起来最新的项目已添加到列表的末尾。

我希望最新的项目出现在顶部。即一切都按时间倒序出现。

到目前为止我提出的两个选项是: 1)反转列表,每次添加内容时创建一个新数组,并将此反转列表作为 prop 传递。 2)使用轮班。

但由于性能原因,它们都没有吸引力。

我不知道 Javascript 支持逆序映射。我一直在尝试 for 循环,但一直无法让它工作。

在 React 中以相反顺序渲染数组的惯用方法是什么?


如果您选择使用反转列表reverse(), shift() or splice(),您应该首先制作数组的浅表副本,然后在副本上使用该函数。 React 中的 props 不应该被改变。

例如:

[...this.props.myList].reverse().map(createListItem, this)

or

this.props.myList.slice(0).map(createListItem, this)

(这确实应该是一条评论,但我还没有这样做的要点:))

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

React:给定一个数组,有效地以相反的顺序渲染元素 的相关文章

随机推荐

  • 异常信息:System.Reflection.TargetInitationException

    我正在开发 WPF 应用程序 仅在单个设备上运行时收到此错误 Exception Info System Reflection TargetInvocationException 我的问题 有什么线索可能导致此错误吗 知道如何在发布模式下调
  • 核心数据同步

    有没有办法自动将我的核心数据模型与服务器同步 最好是 REST Thanks 苹果已经分享了他们的同步服务框架 记录如下 http developer apple com documentation Cocoa Conceptual Syn
  • 了解 C++ 内存模型:不同运行时的不同值

    下面的代码有什么问题 我预计消费者 1 和消费者 2 会生成 10 个 但有时会看到 1 include
  • 画布和输入映射

    我正在用 Java 构建一个 2d 游戏 我决定使用 Canvas 在上面显示与当前帧相关的图像 我使用 Canvas 是因为我听说它在时间方面比 JPanel 更高效 这是真的吗 另外 我想通过以下方式向游戏添加一些输入键绑定因为关键听众
  • 在迭代器上使用 map()

    假设我们有一张地图 let m new Map using m values 返回一个地图迭代器 但我不能使用forEach or map 在该迭代器上并在该迭代器上实现 while 循环似乎是一种反模式 因为 ES6 提供了类似的函数ma
  • 如何使用 Caliburn.Micro 将源 MediaCapture 绑定到 CaptureElement?

    在 Windows Phone 8 1 上 我使用 Caliburn Micro 视图模型优先方法 但由于视图模型无法了解视图的任何信息 因此我看不到如何将 MediaCapture 对象绑定到视图中的 CaptureElement 我有同
  • Flutter pub get 执行时间太长

    当在 Vscode 中运行新应用程序 flutter pub get 时 它会持续运行但未完成 我尝试过 flutter clean 然后重新打开 vscode Try 扑干净命令 同时删除pubspec lock然后将文件放在根目录中re
  • 使用 Python/(GAE) 为 Android 应用程序推送通知的服务器端实现 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 从哪里 有用的链接 开始 我需要基础
  • Perl 6 可以根据排序规则进行排序或比较吗?

    The cmp操作员 https docs perl6 org language operators infix cmp适用于代码编号 或者至少我认为它是这样做的 因为文档对此没有明确说明 并且没有提及任何本地化内容 我可以按照其他排序规则
  • “扁平比嵌套更好”——对于数据和代码? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 This https stackoverflow com questions 4372073 traversing and modifying
  • s3fs 将 Amazon S3 存储桶挂载为本地目录的稳定性如何 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 s3fs 在 Linux 中将 Amazon S3 存储桶挂载为本地目录的稳定性如何 对于高要求的生产环境是否推荐 稳定 有更好 类似的解决方案
  • 更改 Firefox 拼写检查默认语言

    Firefox 开始相信我的默认拼写检查语言应该是西班牙语 我的全球偏好选择了英语 首选项 gt 内容 gt 语言 gt 英语 en 我可以通过以下方式逐页重置拼写检查器语言 右键单击 gt 语言 gt 英语 美国 但是 对于新打开的页面或
  • 如何修复 Jackson java 8 数据/时间错误?

    Java 8 date time type java time LocalDateTime not supported by default add Module com fasterxml jackson datatype jackson
  • 无法在管道中多次检出同一存储库

    我在多个环境中拥有自托管代理 我试图在这些环境上运行相同的构建 部署进程 我希望能够将相同的代码从单个存储库同时部署到多个系统 因此 我创建了一个 开销 管道和几个 流程 管道模板 一切似乎都进展顺利 除了当我尝试在同一管道执行中两次执行同
  • 多个枚举实现协议问题

    我将枚举定义为确认协议可事件 protocol Eventable var name String get static var all Eventable get enum MyEnum String Eventable case bla
  • 自定义字段的 to_python 不起作用? - 姜戈

    我正在尝试实现一个加密的字符字段 我在用着pydes http twhiteman netfirms com des html用于加密 这就是我所拥有的 from pyDes import triple des PAD PKCS5 from
  • Visual C++“强制包含”选项

    我刚刚遇到了一个 Visual C 选项 它允许您强制包含文件 当我查看一些缺少 include StdAfx h 在每个 cpp 文件上 但实际上是通过此选项执行此操作 该选项可以在高级 C C 配置属性页并等于 FI编译器选项 这个选项
  • 将 CALayer 渲染为 PDF 输出时保持矢量图形

    我正在将包含许多数据点的绘图渲染到由 NSView 托管的 CALayer 中 CALayer 的drawInContext 中完成的所有绘图操作都是矢量操作 CGPath 等 现在我想将其导出为 PDF 文件 使用 CGPDFContex
  • 使用 persistence.xml 时,将 Hibernate 4.0 与 Tomcat 7 结合使用时出现 JndiException

    我在 Tomcat 7 上使用 Hibernate 4 0 和 JPA persistence xml 文件 没有 Struts 只是直接使用 Hibernate 和一些 Jersey 服务 这是我遇到的异常 Caused by org h
  • React:给定一个数组,有效地以相反的顺序渲染元素

    我目前以典型的 React 风格渲染一个列表 该列表作为数组道具传递 我像这样映射它 this props myList map createListItem this 因此 当添加新元素时 看起来最新的项目已添加到列表的末尾 我希望最新的