为什么我无法在 React.js 中推送状态数组中的值?

2023-12-07

我可以将 1 项添加到它记录的数组中["50"]在控制台中。但是当我尝试添加第二个值时,我收到此错误“currentScores.push 不是函数”。这样的做法是错误的吗?

 class Scores extends Component {

      constructor() {
        super();
        this.addScore = this.addScore.bind(this);
        this.handleScoreChange = this.handleScoreChange.bind(this);
        this.state = {
          scores: [],
          scoreInput: '',
        };
      }

      addScore() {
        const currentScores = this.state.scores;
        const newScores = currentScores.push(this.state.scoreInput);
        this.setState({ scores: newScores });
        console.log(this.state.scores);
      }

      handleScoreChange(e) {
        this.setState({ scoreInput: e.target.value });
      }

      render() {
        const scores = this.state.scores;
        return (
                <input name="score" type="text" placeholder="Score" onChange={this.handleScoreChange}/>
                <button onClick={this.addScore(this.state.scoreInput)}>add</button>
        );
      }
    }

    export default Scores;

当你使用时有两件事push它不返回new array。利用concat并将该值绑定到 addUser 函数。

还将您的元素包装在单个 div 中并编写您的console.log()语句输出状态值callbacksetState 的函数,因为它需要一些时间来改变

 class Scores extends React.Component {

      constructor() {
        super();
        this.addScore = this.addScore.bind(this);
        this.handleScoreChange = this.handleScoreChange.bind(this);
        this.state = {
          scores: [],
          scoreInput: '',
        };
      }

      addScore() {
        const currentScores = this.state.scores;
        const newScores = currentScores.concat(this.state.scoreInput);
        this.setState({ scores: newScores }, function(){
          console.log(this.state.scores);
        });
        
      }

      handleScoreChange(e) {
        this.setState({ scoreInput: e.target.value });
      }

      render() {
        const scores = this.state.scores;
        return (
                <div>
                <input name="score" type="text" placeholder="Score" onChange={this.handleScoreChange}/>
                <button onClick={this.addScore.bind(this, this.state.scoreInput)}>add</button></div>
        );
      }
    }

    ReactDOM.render(<Scores/>, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我无法在 React.js 中推送状态数组中的值? 的相关文章

  • Javascript 或 jQuery Flot 中的仪表图 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试获得一个看起来像仪表的图表 我已经在其他图表中使用 jQuery Flot 那么是否可以使用 Flot 或纯 Javascrip
  • Vue 表单输入与现有值的绑定

    我想将输入与模型绑定 当页面加载时 输入就有一个值 但是当我与模型绑定时 当我使用 null 或空值初始化模型时 它会变空 div div
  • 回调月、周、日标题栏按钮点击?

    当用户单击日 周 月按钮时 我需要运行一些 Javascript 代码来重新加载日历 有没有类似的回调dayButtonClicked 或者其他的东西 BUG发生 当我第一次加载日历时 最初的视图看起来不错 我的最初加载日 一旦我加载另一个
  • addIceCandidate 参数为 null 会导致错误

    我正在尝试学习WebRTC 我已经在同一页面中实现了连接两个RTCPeerConnection 现在我正在尝试将它们分成两个单独的页面并连接它们 然而 在编写代码并交换报价和 答案之后 我注意到 initiator html 上的 addI
  • 我在 javascript 中更新数组(键,值)对象

    如何更新数组 键 值 对象 arrTotals DistroTotal 0 00 coupons 12 invoiceAmount 14 96 我想将 DistroTotal 更新为一个值 我努力了 for var key in arrTo
  • 为什么 toDataURL 在移动设备上无法获取画布内容?

    我正在尝试从画布中获取图像 它可以在电脑浏览器上运行 但不能在移动设备上运行 我在 iPhone 上的 Safari 中进行了测试 这是代码 draw click function drawing css visibility visibl
  • ArrayBuffer 到 String、String 到 ArrayBuffer 方法

    这个问题过去已经得到了答案 但我肯定地说它仍然没有答案 一般而言 几乎都有关于 ArrayBuffers 的文档 更不用说特定应用程序了 我已经研究了好几天了 没有任何结果 本质上 我需要尝试转换从文件读取器获得的 ArrayBuffer
  • 单击时更改 CSS 属性

    我试图在单击另一个元素时更改一个元素的 CSS 我进行了很多搜索 但没有任何效果是完美的 目前我正在使用下面的代码 但它不起作用 谁能告诉我我错过了什么 div hello world div img src zoom png functi
  • Javascript正则表达式单引号

    我的正则表达式是 var re a z A Z 1 15 我想允许这样 单引号 我怎样才能做到这一点 例如 您可以使用以下正则表达式来允许类似的字符串abcd dfgh A Za z A Za z
  • 检查点是否在 OpenLayers 3 中的多边形内部

    当我在 OpenLayers 地图中绘制多边形时 我想知道标记是否位于多边形内部 我在OpenLayers API中搜索 但没有找到解决方案 你可以在这里看到我的完整代码link http plnkr co edit iI92XbxVDAg
  • 如何在 leaflet.js 中设置 layer.control 的样式?

    我正在尝试更改图层控件中的默认下拉菜单图标 我希望图标旁边有文字 有什么办法可以做到这一点吗 也许使用 JQuery 和 CSS 我正在开发一个基于此示例的传单项目 http leafletjs com examples layers co
  • Open Layers 3 根据矢量图层的范围将地图居中?

    我想根据矢量图层特征 点 来定位地图的中心和缩放级别 我有一个 geojson 文件正在填充我的地图 var vectorSource new ol source Vector url assets js data geojson form
  • 使用映射更新没有对象的数组

    如果我有一个像这样的对象数组 name james name john 我知道 john 的索引并且想要更改 john 的值我会做 person person map p i gt i index p name changed john p
  • REGEX (javascript) - 允许字母数字字符和不在第一个位置的特殊字符

    我想设计一个正则表达式 允许使用字母数字字符以及其他字符 只要它们不在第一个位置即可 例子 VALID Test VALID Hello123 VALID 456 Hi VALID 456 789 VALID Hi 777 VALID 33
  • Javascript:如果没有在任何地方导入,package.json 依赖项是否包含在构建中?

    在项目中 package json 文件中列出了一些依赖包 npm install some name save 但未在源代码中的任何 ES6 模块文件中导入 该包是否会包含在最终版本中 例如汇总输出 据我了解 未导入的 es6 模块甚至不
  • jQuery.getJSON:如何避免在每次刷新时请求 json 文件? (缓存)

    在此示例中 您可以看到生成的 HTML 列表 每次刷新时 脚本都会请求数据文件 ajax test json 并再次构建列表 生成的文件 ajax test json 被静态缓存 但是如何避免在每次刷新时请求此文件 source jquer
  • Javascript树遍历算法

    我需要帮助以深度优先的方式遍历树结构 我无法想出一个算法来正确地做到这一点 我的输入是这样的 A B C 1 2 a b c d 输出应采用以下形式 A 1 a A 1 b A 1 c A 1 d A 2 a A 2 b A 2 c A 2
  • 如何修复 Nuxt 中导航器/窗口/文档未定义的问题

    我试图确定 Nuxt 应用程序内的 UserAgent 和 Retina 信息 但应用程序抛出错误并显示导航 窗口未定义 我如何在 nuxt 应用程序中获取这些信息 const userAgent navigator userAgent t
  • 单值或常量值时在 x 轴上绘制的样条图 - highchart

    while using the older version of highchart 2 1 6 if a plot had only one value or a series of same values it would plot a
  • JavaScript 对象引用缓存

    我们的代码库中有很多对象 它们的名称空间是为了避免冲突 Example App local view MyView 在我在代码库中看到的大多数地方 我们使用完整路径来获取对对象的引用 并且这在同一函数中重复多次 Example functi

随机推荐

  • Python - 在守护进程内调用 multiprocessing.pool

    我有一个Python生成守护进程的脚本 在这个过程中 我正在使用multiprocessing pool to run 1 to 4同时进行处理 当我在守护进程之外运行它时 它工作得很好 即 当我设置run from debugger Tr
  • 即时运行不适用于 android studio 3.3 更新

    到目前为止 我已经在 Android 7 的 Nexus 5 上使用即时运行 没有任何问题 昨天我将Android Studio更新到稳定版本3 3 从那时起 Instant Run 就不起作用了 我总是收到以下警告 选择卸载以前版本的选项
  • 如何获取某个 URL 的总点赞数(点赞数和分享数)?

    我在页面上放置的 Likes 插件会显示直接单击按钮的次数 以及页面 URL 被共享或点赞被评论的次数 不过 当我使用 Graph API 查看我的对象时 它只显示直接 点赞 点击的数量 这是一个示例对象 id 17678692xxxxxx
  • python/scipy 中的多元样条插值?

    是否有库模块或其他简单的方法来在 python 中实现多元样条插值 具体来说 我在规则间隔的三维网格上有一组标量数据 我需要在分散在整个域中的少量点处对其进行插值 对于二维 我一直在使用scipy interpolate RectBivar
  • 将字符串发送到serial.to_bytes不起作用

    我正在尝试发送包含命令的字符串变量 像这样 value 0x31 0x0a 0x32 0x0a 0x33 0x0a self s write serial to bytes value 上面那个失败了 不会给出任何错误 但是当我发送这样的值
  • ASP.NET Core 6:允许Azure AD身份验证和本地身份验证

    我正在开发一个程序 该程序允许用户以两种方式进行身份验证 他们可以通过任何电子邮件创建和使用本地 自制 帐户 或者他们可以仅对我们的组织使用 Azure AD OAuth 无论使用哪种身份验证方法 用户都应受到相同的对待并返回 trueco
  • 令人困惑的 gprof 输出

    I ran gprof在一个 C 程序上16 637s 根据time 我得到了第一行输出 cumulative self self total time seconds seconds calls s call s call name 31
  • 如何在 ASP.Net MVC 中的文本框中显示水印而不是值?

    在我看来我有 pounds when I run the application I got in my text box When I delete the value from the textbox it will show wate
  • 在端口 587 (TLS) 上使用 CDO 发送电子邮件时出错

    在端口 587 使用 TLS 安全协议的端口 上使用 CDO 发送邮件有什么技巧吗 这是我的 C 代码 CDO IMessagePtr iMsg uuidof CDO Message CDO IConfigurationPtr iConf
  • MicrosoftAccount 访问 Azure 移动服务 API 的桌面客户端流程

    我关注了阿德里安 霍尔斯book创建具有移动服务 API 后端的跨平台应用程序 我已成功从 Android iOS 和桌面 WPF 客户端对后端进行不安全的访问 我将继续使用 Authorize 属性为 API 添加安全性 我想使用 Mic
  • 如果未设置用户电子邮件,如何进行 git 块提交?

    我有单独的电子邮件地址用于工作项目和开源项目 并且我想确保为每种类型的项目使用正确的电子邮件地址 显然 解决方案是适当地设置存储库特定配置 不幸的是 我一直忘记设置它 直到我进行了一些提交 所以我使用全局 user email 配置 如果与
  • Perl 精确字符串匹配

    我有以下 Perl 代码来提示用户回答是 否 如果用户输入除 是 否 以外的任何内容 请继续提示 没有其他词是可以接受的 我不知道为什么这段代码不起作用 我用答案 noooooo 进行了测试 我希望它再次提示 但它没有进入 while 循环
  • 您可以在Python中请求MacOS屏幕录制权限吗

    有没有办法让 MacOS Python 应用程序 使用 Pillow 和 ImageGrab 像其他 C 应用程序一样请求屏幕录制权限 看https developer apple com documentation avfoundatio
  • 如何在没有作业运行时自动停止 SQL Server 代理?

    我在一个实例中有大约 40 个不同的 SQL Server 作业 他们都有不同的时间表 有些每天运行一次 有些每两分钟运行一次 有些每五分钟运行一次 如果我需要停止 sql server 代理 如何找到没有作业运行的最佳时间 这样我就不会中
  • 发布新版本的 Google 表格插件

    我已经发布了一个供内部使用的 Google Sheets 插件 有用 但我似乎无法发布新版本 我正在关注这个 https developers google com gsuite add ons how tos manage addons
  • 来自 MPMediaItem 的 NSData

    谁能帮助我如何将从设备媒体库中选择的歌曲转换为 NSData 我需要一个接受媒体项并返回该特定媒体项的 NSData 的函数 提前致谢 您可以使用此代码 MPMediaItem item obtain the media item NSAu
  • 如何向 sqlalchemy 中的表添加自定义的任意选项?

    我正在尝试使用 sqlalchemy 创建一个表declarative base我想补充一点cockroachdb s INTERLEAVE IN PARENT option CREATE TABLE orders customer INT
  • 将字符串转换为日期时间

    如何将字符串转换为类似 01 01 1970 00 03 44 到约会时间 保持简单new Date string 这应该可以做到 const s 01 01 1970 00 03 44 const d new Date s console
  • HTML5 Web Audio API,从 javax.sound 移植并出现失真

    我需要动态生成音频 不能从 wav 或 mp3 文件生成 幸运的是 新的 WebAudio API FF4 和 Chrome 13 提供了此功能 我有一些 Java 代码正在移植到 Javascript 如下所示 byte buffer n
  • 为什么我无法在 React.js 中推送状态数组中的值?

    我可以将 1 项添加到它记录的数组中 50 在控制台中 但是当我尝试添加第二个值时 我收到此错误 currentScores push 不是函数 这样的做法是错误的吗 class Scores extends Component const