javascript - 未调用 Checkbox 的 onChange 函数

标签 javascript reactjs react-router

我正在重复一个对象来呈现 UI。每行都有一个 ItemName 和一个复选框。单击复选框我应该得到该行的 ID。当我运行该页面时,我收到此错误消息 => 无法读取未定义的属性“addToCompare”

import React from 'react';

    export default class List extends React.Component {

        constructor(props) {
            super(props);

        }
        addToCompare(event){
              console.log('get id of row');
            }
        render() {
          var planList = [
                          {id: 1, "itemname": "Sunshine},
                          {id: 2, "itemname": "Global"},
                          {id: 3, "itemname": "Lifetime"}
                          ];
            return (
                    <div id="layout-content" className="layout-content-wrapper">
                      {
                        planList.map(function(item, i) {
                         return (
                           <div className="row" key={i}>
                              <h1>
                               <input type="checkbox" onChange={this.addToCompare.bind(this)} />{item.name}
                              </h1>
                           </div>
                           )
                         })
                       }
                     )
    }    

最佳答案

使用es6语法,map函数将this引用到List as

planList.map((item, i) =>{
   return (
         <div className="row" key={i}>
          <h1>
           <input type="checkbox" onChange={this.addToCompare.bind(this)} />{item.name}
          </h1>
          </div>
         )
      })

或将 this 存储到其他变量并使用它来获取 addToCompare 属性,如@Marco 所述

关于javascript - 未调用 Checkbox 的 onChange 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38701369/

相关文章:

javascript - CountUp Javascript 包和 self.d 为空

javascript - 如何根据不同的服务器端状态异步加载React组件?

reactjs - 你如何测试路由器与 jest 和 enzyme 的匹配参数?

reactjs - 我如何将 Prop 传递给 React Router 的 child ?

javascript - polymer 数据与 Javascript 和属性的绑定(bind)

Javascript 检查数组是否存在特定数字

javascript - Particles Js Canvas 显示在页面的最底部

javascript - “string”不能用于索引类型 '{}'

javascript - 如何让 React 更新组件并在组件更新时运行函数?

javascript - 如何将 tabBarOption 添加到下面的代码中?这样我就可以使用 tintColor