当前位置: 首页 > 面试题库 >

反应0.13类方法未定义

赵珂
2023-03-14
问题内容

因此,我开始使用React和ES6并掌握了非常基础的知识。真的感谢一些帮助。

handleClick()引发错误:

Uncaught TypeError: Cannot read property 'handleClick' of undefined

代码如下

export default class MenuItems extends React.Component {

  constructor(props) {
    super(props)
    this.state = {active: false}
    this.handleClick = this.handleClick.bind(this)
  }

  handleClick() {
    this.setState({ active: !this.state.active });
  }

  render() {
    let active = this.state.active
    let menuItems = [{text: 'Logo'}, {text:  'promo'}, {text:     'benefits'}, { text: 'form'}]
    return (
      <ul>
        {menuItems.map(function(item) {
          return <li className={active ? 'active' : ''} onClick={this.handleClick.bind(this)} key={item.id}>{item.text}</li>;
        })}
      </ul>
    );
  }
}

问题答案:
{menuItems.map(function(item) {
  return <li className={active ? 'active' : ''} onClick={this.handleClick.bind(this)} key={item.id}>{item.text}</li>;
})}

由于您的代码处于严格模式下(模块始终处于严格模式下), this因此undefined在传递给的函数中.map

您要么必须通过将第二个参数.map传递给来显式设置上下文:

{menuItems.map(function(item) {
  // ...
}, this)}

或使用箭头功能:

{menuItems.map(
     item => <li className={active ? 'active' : ''} onClick={this.handleClick.bind(this)} key={item.id}>{item.text}</li>
)}


 类似资料:
  • 我试图通过反应路由器将道具从一个组件传递到另一个组件。当我试图从子组件获取道具时,我得到了这样一条消息。这是我的代码: Tracks.jsx: app.jsx: Album.jsx:

  • 问题内容: 我有一个React应用程序,我正在尝试使用来自javascript文件的数据来构建Navbar组件。 我的NavbarData.js文件如下所示: 我正在遍历此数据并在App.js文件中创建组件。 这是我的NavbarItem.js文件 从’react’导入React,{组件}; 所有这些使我看起来像这样。太好了 但我想为每个按钮添加一个监听器。由于这是一个单页应用程序,因此我想呈现一

  • 问题内容: React 在promise中没有定义。这是我的代码: 这是错误代码: 问题答案: 可能没有约束力。 如果您可以使用ES6语法,请尝试用箭头函数替换。它会自动绑定: 或手动绑定:

  • 我必须发布{输入}数据以http://localhost:4000/predictionAxios。但是{输入}变为未定义。 我使用const而不是类Main扩展组件. onChange,它设置表单数据。 阿希奥斯邮报。 返回(表单)时带有onSubmit、onChange。

  • 这在React版本0.12中工作得非常好: 变量获取呈现组件的实际DOM节点。但是,将其转换为React 0.13并不像预期的那样工作: 我尝试了React.findDOMNode(this),它也不起作用。基本上,我只是试图获取由渲染函数渲染的顶级dom节点,而不使用ref。这有可能吗?

  • 正如代码所示,我想知道的是,在内存分配中,隐藏Base而不调用子的额外方法的实际情况是什么,它被调用了什么,有没有一种通过Base调用方法的方法。请帮忙

  • 问题内容: 除了添加新笔记,一切似乎都可以在这个小应用程序中使用。按钮位于Board组件上。 我知道这个问题通常是由于未正确绑定“ this”的值引起的。我不确定这是否是这里的问题,或者我是否缺少其他东西。谢谢 演示:http://jsbin.com/pewahi/edit?js,输出 问题答案: 您的代码很好。这可能是JSBin的错误,以及如何使用Babel处理转译。如果将杂项添加到代码的顶部,

  • 构建一个小的react应用程序,将地理位置(由浏览器确定为道具)传递给子组件。 第一个组件:app.jsx 该组件确定位置,保存要声明的纬度和经度,并通过props将该信息传递给Weather.jsx组件,该组件正在工作,如下图所示: 在Weather.jsx组件中,我尝试访问这些道具,得到未定义的或空的对象。 真的不知道问题是什么,因为react dev tools显示weather组件确实在传