在 React 中更新数组

2024-02-02

我来自 Angular 1.x,希望使用 React / Redux 更新无序列表。

在 console.log 中,我看到数组正在更新,但它似乎没有绑定到 DOM。我有以下内容——

在输入的 onKeyPress 上,我有一个推送到消息数组的函数。

<ul className="list-inline">
  {messages.map(function(message, key){
    return (
      <li key={key} message={message}>{message}</li>
    );
  })}
</ul>

Update我有以下(但还没有运气)一些笔记。我正在使用 Firebase 侦听事件并添加到数组中。想知道这是否是一个绑定问题? --

class Comments extends React.Component {
  constructor(props, context) {
    super(props, context);
    this.state = {messages: this.props.messages};
  }

  componentDidMount() {
    const path = '/comments/all';
    // Firebase watches for new comments
    firebase
      .database()
      .ref(path)
      .on('child_added', (dataSnapshot) => {
          this.state.messages.push(dataSnapshot.val());
          this.setState({
            messages: this.state.messages
          });
          //console.log(dataSnapshot.val());
      });
  }

  render() {
    const messages = this.state.messages;
    return (
      <ul className="list-inline">
        {messages.map(function(message, key){
          <li key={key}>{message}</li>
        })}
      </ul>
    );
  }
}

您需要在组件中设置消息state.

getInitialState() {
  return {
    messages: []
  }
}

然后在您的函数中设置状态:

this.setState({messages: updatedMessages})

然后映射消息状态,或者messages变量在render:

const messages = this.state.messages;


<ul className="list-inline">
  {messages.map(function(message, key){
etc...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 React 中更新数组 的相关文章

  • 在 Vue.js 中从父组件执行子方法

    目前 我有一个 Vue js 组件 其中包含其他组件的列表 我知道使用 vue 的常见方式是将数据传递给孩子 并从孩子向父母发出事件 但是 在这种情况下 我想在子组件中的按钮出现时执行子组件中的方法 parent被点击 哪种方法最好 一种建
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 使用 jQuery/JS 打开时使
    标签的内容具有动画效果

    我只想要 HTML5 的内容details标记为 滑行 动画打开 而不是仅仅弹出打开 立即出现 这可以用 jQuery Javascript 实现吗 Fiddle http jsfiddle net 9h4Hq HTML
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • Google App Engine:修改云运行环境

    我正在尝试部署一个使用自定义 Node js 服务器的 Next js 应用程序 我想将自定义构建变量注入应用程序 next config js const NODE ENV process env NODE ENV const envTy
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • Firefox 书签探索未超过 Javascript 的第一级

    我已经编写了一些代码来探索我的 Firefox 书签 但我只获得了第一级书签 即我没有获得文件夹中的链接 e g 搜索引擎 雅虎网站 谷歌网站 在此示例中 我只能访问 Search engines 和 google com 不能访问 yah
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 在 React 中实现 Google 登录错误 -

    我正在尝试在 React 中实现 google 登录 这是我的组件 import Fragment useEffect from react import GOOGLE CLIENT ID from some file const Goog
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • 摆脱node-jsx

    在我的 NodeJS 应用程序的路由器中 我想渲染一个 React 应用程序 由于它没有被浏览器化 并且已反应 因此它返回unexpected token lt 构建时出错 我发现如果我require node jsx install 它不
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比

随机推荐

  • 当“无法通过包 y 定位对象方法 x”时打印堆栈跟踪 (Perl)

    我有可能在错误类型的对象上调用方法 x 但它位于我的调用堆栈中 因此并不明显 那么 有没有办法在发生此错误时始终打印完整的堆栈跟踪 要始终打印完整的堆栈跟踪 请添加use Carp Always 或运行程序 perl MCarp Alway
  • 如何将HSL(色相、饱和度、亮度)转换为HSLum(色相、饱和度、亮度)和HSLum/RGB?

    我想将一些颜色值从众所周知的 HSL 转换为鲜为人知的 HSLum 该怎么做 hsl 0 1 0 0 5 rgb red is hslum 0 1 0 0 54 hsl 120 1 0 0 5 rgb green is hslum 0 1
  • 错误 CS0117(“调试”不包含“日志”的定义)

    当游戏对象与另一个游戏对象发生碰撞时 我试图在控制台上显示 我在 Unity 的控制台上不断收到此错误 ERROR CS0117 调试 不包含 日志 的定义 我在 mac 上使用 net core 我使用 vs 代码 1 35 1 和团结2
  • iPhone OS 当前使用情况统计信息(尤其是 2.x 与 3.x)

    我试图找出有多少活跃的 iPhone 和 iPod touch 用户至少安装了 3 0 操作系统 我需要知道运行 2 x 的百分比是否仍然相当大 我尝试查看 AdMob 统计数据和其他操作系统使用统计网站 但我看不到 iPhone 2 x
  • 在 FB 上实时启动应用程序时收到“此应用程序处于开发模式”

    我认为我一切都正确 但我的应用程序尚未上线 它说 这个应用程序处于开发模式 我猜这就是他们过去所说的沙盒模式 但我不知道在哪里将其从开发模式中取消 有人可以帮帮我吗 提前致谢 onkar 发布的解决方案对我不起作用 我认为自从 onkar
  • 在 D3 力布局链接中间显示箭头

    我正在使用 D3 绘制力导向图 这与此示例非常相似 http bl ocks org mbostock 1153292 http bl ocks org mbostock 1153292 我试图将箭头放在链接的中间而不是末端 玩attr r
  • Android Mediamuxer moovatom

    我正在使用录制设备屏幕Mediacodec and Mediamuxerapi 一切都很好 现在我想在录制时流式传输该文件 但直到muxer停止并且 moovatom 被写入文件末尾 所以我的问题是甚至可以使用Mediamuxer为目的 如
  • 为什么 malloc 中的内存不归零?

    我在书中读过 动态内存分配器维护进程的虚拟区域 内存称为堆 详细信息因系统而异 但是 不失一般性 我们将假设堆是一个区域 零需求内存在未初始化之后立即开始 bss 区域并向上增长 向更高的地址 所以 我很困惑为什么堆中的内存没有初始化为零
  • Excel VBA 使用 Workbook.Open 并显示 Dir(Directory) 的结果

    这看起来很简单 我已经让它工作了多次 但是在我的 Dir 调用 迭代目录 和打开当前文件之间 有些东西不断中断 这是相关代码 SourceLoc C ExcelWIP TestSource SourceCurrentFile Dir Sou
  • 面向对象的实现策略

    我目前正在 Squeak 环境中学习 Smalltalk 并且正在阅读 Squeak A Quick Trip To ObjectLand 我带着一些 Python 和 Java 的先验知识进入了面向对象范式 书中第 36 页的这句话让我想
  • 如何使用 FFMPEG 获取视频尺寸[重复]

    这个问题在这里已经有答案了 我的目标是将视频文件传递给 FFMPEG 并获取其尺寸作为输出 我怎样才能实现这一目标 谁能帮我提供示例代码吗 public void GetVideoInfo string input set up the p
  • 通知所有组成员 GitLab 中失败的管道

    目标是让每个人都能收到每个失败管道的通知 由他们自行决定 目前 我们任何人都可以在这个项目分支上运行管道 并且管道的创建者会收到一封电子邮件 而其他人则不会 我尝试将通知级别设置为watch and custom with failed p
  • Mockito - 如何模拟/验证接受新对象的方法调用?

    我有一个想要测试的方法 method1 它根据提供的参数创建一个对象并调用另一个方法 method2 所以我模拟 method2 它接受一个对象 sampleObj public void method1 booleanParam if b
  • 似乎“border-box”不适用于“a”标签的内联块

    我正在尝试整合box sizing但似乎不起作用 任何人都可以帮助我理解这里的问题 现场演示 https jsfiddle net 3gwebtrain b45qjhh5 a display inline block background
  • 如何在 Puppet 2.7 中将数组转换为逗号分隔的字符串

    我正在使用 Puppet 2 7 我需要将数组转换为逗号分隔列表 hosts fqdn host1 host2 host3 我需要将其转换为所需的结果 host1 host2 host3 我猜 Puppet 3 2 提供了 lambda 表
  • 在 VB.NET 中使用带有命名空间的 LINQ

    我有这个 XML 文件
  • O(N) 排列识别

    这个答案 https stackoverflow com a 36818947 2642059通过比较两个字符串的内容来确定它们是否是排列 如果它们包含相同数量的每个字符 那么它们显然是排列 这是在O N time 但我不喜欢这个答案 因为
  • 像渐变一样将图像淡入透明

    我希望将图像 背景图像 淡化为透明 以便实际上可以看到其后面的内容 由于透明度 只能勉强看到 显然 我可以使用 PNG 图像来实现它 但是每次我想要更改开始 gt 停止透明度点时 我都需要要求我的图形设计师更改图像 也许我想要更多的颜色 或
  • shouldStartLoadWithRequest 永远不会被调用

    我研究了又研究 仍然不明白为什么 shouldStartLoadWithRequest 从未被调用 我的页面加载良好 并且调用了一些 UIWebview 委托协议方法 请从下面的我的代码中找到相关片段 在我的 m 中综合我的 webview
  • 在 React 中更新数组

    我来自 Angular 1 x 希望使用 React Redux 更新无序列表 在 console log 中 我看到数组正在更新 但它似乎没有绑定到 DOM 我有以下内容 在输入的 onKeyPress 上 我有一个推送到消息数组的函数