React:this.state在for循环中消失

2024-01-06

我怎样才能携带this进入我的.map()环形?它似乎消失了。 :-(

我正在创建一个“动态表单”,用户可以在其中为其表单指定多行输入。我想迭代所有项目state.items[]并为他们构建表单输入字段。

例如,表单以“field”和“autocomplete_from”开头。然后用户可以单击添加新行在他的表格中获得更多行。

102     render: function() {
103       return (
104         <div>
105           {this.state.items.map(function(object, i){
106             return (
107               <div>
109                 <FieldName/>

110                 <strong> State.autocomplete_from:
                            {this.state.autocomplete_from} </strong>
                         //       ^^^ 
                         //   Uncaught TypeError: Cannot read property 'state' of undefined

120                 <button onClick={this.newFieldEntry}>Create a new field</button>
121                 <button onClick={this.saveAndContinue}>Save and Continue</button>
122               </div>
123               );
124           })}
125         </div>
126       );

In .map this不引用您的组件。有多种方法可以解决此问题

  1. Save this到变量

    render: function() {
      var _this = this;
    
      return (
       <div>
         {this.state.items.map(function(object, i){
           return (
             <div>
               <FieldName/>
    
               <strong> State.autocomplete_from:
                 {_this.state.autocomplete_from} </strong>
    
               <button onClick={this.newFieldEntry}>Create a new field</button>
               <button onClick={this.saveAndContinue}>Save and Continue</button>
             </div>
           );
         })}
       </div>
     );
    }
    
  2. Set this for .map打回来(如果你不能使用ES2015功能,此变体是首选)

    this.state.items.map(function (object, i) {
       // ....
    }, this);
    
  3. use arrow function

    this.state.items.map((object, i) => {
       // ....
    }) 
    
  4. use .bind

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

React:this.state在for循环中消失 的相关文章

随机推荐

  • 在 SQLPLUS 中正确格式化表

    在这被投票为重复问题之前 我在 S O 上花了相当多的时间 试图解决这个问题 正如您在下面的屏幕截图中看到的 我的表格看起来很乱 对于第一个和第二个表 您可以看到每个表有 2 组列标题 那么 例如 我怎样才能将所有 5 条客户记录包含在一张
  • 如何将任何 mp3 文件转换为 .wav 16khz 单声道 16 位

    请帮助选择将任何 mp3 文件转换为特殊 wav 的解决方案 我是 Linux 命令行工具的新手 所以现在对我来说很难 我需要从任何 mp3 文件中获取具有 16khz 单声道 16 位声音属性的 wav 我正在尝试 ffmpeg i 11
  • 将转换后的 DataFrame 保存/导出回 JDBC / MySQL

    我正在尝试弄清楚如何使用新的DataFrameWriter将数据写回 JDBC 数据库 我似乎找不到任何相关文档 尽管查看源代码似乎应该是可能的 我正在尝试的一个简单示例如下所示 sqlContext read format jdbc op
  • 引用 dplyr across() 内的列名称

    是否可以参考专栏names在 lambda 函数里面across df lt tibble age c 12 45 sex c f f allowed values lt list age 18 100 sex c f m df gt mu
  • 在C中获取文件大小的正确方法

    我正在做一个套接字编程作业 其中我必须在 sparc 和 Linux 机器之间发送一个文件 在以字符流发送文件之前 我必须获取文件大小并告诉客户端 以下是我尝试获取尺寸的一些方法 但我不确定哪一种是合适的 出于测试目的 我创建了一个内容为
  • Glassfish 上的领域身份验证后重定向

    我目前正在 Glassfish 上运行 JPA EJB JSF 应用程序 并使用安全 JDBC 领域进行身份验证 该领域运行得很好 满足了要求 直到客户要求对导航进行小的更改 如今 如果您尝试访问受保护的页面 身份验证机制会将您重定向到 w
  • 从视频中提取音频为 wav

    我知道有一个与我类似的问题 从视频文件中提取 wav 文件 https stackoverflow com questions 1010937 extract wav file from video file 我是 C 新手 了解 COM
  • array.reduce() 方法中此语法的含义是什么?

    我正在研究一个功能性的 JavaScript 库 并发现了一个单行函数 它取数组中数字的平均值 我对语法中包含的某些内容感到困惑 但似乎不需要正确返回结果 const numArr 1 2 3 4 5 6 7 8 9 10 const av
  • 如何获取具有给定属性的所有 Unicode 字符的列表?

    如果不循环整个 Unicode 字符范围 如何获取具有给定属性的字符列表 特别是我想要一个所有数字字符的列表 即那些匹配 d 我看过Unicode UCD http perldoc perl org Unicode UCD html 它对于
  • 如何使用vue js滚动结束页面

    如何滚动到页面底部 scroll let container this el querySelector scrollingChat container scrollTop container scrollHeight 我正在这样做 并且总
  • 在 Pandas 中有效地嵌套查询/比较多个数据集

    我正在使用 Pandas 第一次 来确定人员是否满足课程出勤的先决条件 下面的代码返回所需的结果 但我确信有更好的方法来实现相同的结果 确定您是否可以学习物理的标准如下 Math A OR Math B OR Math C AND Eng
  • 父进程和子进程都可以访问记录器吗?

    在python中 如果在父进程中配置了记录器 那么子进程也会获取该记录器吗 更清楚地说 在我的应用程序中 我通过执行以下操作为父进程配置根记录器logger logging getlogger 并向其中添加处理程序 现在 当一个子进程被分叉
  • 如何使 Facebook 测试页拥有 Instagram Business 帐户?

    当您尝试为您的应用程序申请 Facebook 权限时 您可能会遇到一些需要应用审核的权限 就我而言 我需要使用Facebook登录企业帐户 因此我需要申请Facebook的App Review 为了对 Facebook 进行应用程序审核 您
  • 检查没有值的 HTML5 数据属性

    我有一个具有 HTML5 的元素data属性没有值 只有键 如下所示 div Foo div 如果我使用dataset像这样 getElementById 1 dataset foo 那么 这将返回一个空值 并且我无法区分该元素是否具有da
  • monodis 和 ikdasm 有什么区别?

    我使用的是mono 3 8 0 安装后 我发现mono bin 目录中有两个汇编程序 monodis 和 ildasm 在测试过程中 我发现生成的 il 文件不同 ikdasm 生成的文件与 MS Net 中的 ildasm exe 相同
  • C++ 数组(初学者)

    我把数组误认为是向量 抱歉 数组在瑞典语中是向量 我正在制作的程序需要一些帮助 这是一项作业 所以我真的需要了解如何做到这一点 而不仅仅是获取代码 P 我需要创建一个包含 10 个 数字 的数组 我想让它们在程序运行时可编辑 完成此操作后
  • Hibernate 和多线程逻辑

    我正在开发一个 java 独立项目 我需要在多线程应用程序中使用休眠 但我只是不知道如何正确设置它 每个线程处理其他线程的相同进程 当我以非异步方式运行它时 一切都很好 但是当我使用线程调用相同的东西时 休眠就无法正常工作 谁能解释一下在多
  • PHP - 将日期转换为 YYYY-MM-DDTHH:MM:SS

    我想知道是否可以将今天的日期格式化为以下格式 YYYY MM DDTHH MM SS 保留 T 很重要 如下所示 2017 07 20T00 00 00 下面我有 invoice date date Y m d H i s 我不知道如何在中
  • 如何在 nuxt 中使用 google recaptcha?

    我正在使用 nuxt 并且想使用这个库 https github com nuxt community recaptcha module https github com nuxt community recaptcha module 但我
  • React:this.state在for循环中消失

    我怎样才能携带this进入我的 map 环形 它似乎消失了 我正在创建一个 动态表单 用户可以在其中为其表单指定多行输入 我想迭代所有项目state items 并为他们构建表单输入字段 例如 表单以 field 和 autocomplet