【问题标题】:React onClick: cannot read property 'functionName' of undefinedReact onClick:无法读取未定义的属性'functionName'
【发布时间】:2020-05-27 01:58:19
【问题描述】:

我有一个按钮,我试图在我的 React 组件中单击该按钮,该按钮应该执行一个函数,该函数带有一个名为“item”的参数,该参数在返回此伪 HTML 的函数中定义:

<div>{item.creationDate}</div>
        <PrimaryButton text={strings.LangPointer}
          onClick={() => this.emitComponentId(item)}/>

当我尝试运行它时,它给了我“无法读取属性emitComponentId of undefined。”。

我尝试了多种解决方案,但都没有工作并给我同样的错误:

onClick={this.emitComponentId.bind(this)}

定义 组件构造函数中的this.emitComponentId = this.emitComponentId.bind(this)

() =&gt; this.emitComponentId(item).bind(this) --> 甚至不允许我编译,因为 'void' 不是可接受的返回类型

我尝试过的基本上没有任何效果,并且总是给我相同的结果。

【问题讨论】:

  • 上面第一段代码的上下文是什么?是在render() {...} 内,还是在export default class App extends React.Component {...} 定义内?只是想解决这个问题。
  • 它在一个名为renderTaskItem 的函数中,该函数由render() 中的onRenderCell 属性调用。
  • 只添加调用代码好吗?刚刚查看了我拥有的一个可用的 React 示例,您是否将其称为 return ( ... {this.renderOtherThing()} ....)?另外,这是唯一的错误吗?有时,较早的错误会级联成其他错误。
  • 是的,这就是我正在做的事情。我认为没有其他错误,因为没有 onclick 功能它可以正常工作,这是我正在开发的一个新功能。
  • 刚刚在 React 中找到了我的一个 onClick 的示例,我已经将它设置为这样,也许这样会更好? onClick={(e) =&gt; this.handleClick(e)}(有事件吗?)另外,handleClick(e) {...} 在类 def, obv 中。

标签: reactjs typescript spfx


【解决方案1】:

通过将.bind(this) 添加到renderTaskItem() 函数的调用来修复它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-25
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 2020-10-10
    • 2019-02-15
    • 2020-07-23
    相关资源
    最近更新 更多