javascript - React 应用程序中的 addEventListener 不起作用

标签 javascript reactjs web-component

一些背景: 我正在尝试在 React 应用程序中使用一个自定义网络组件,并尝试监听来自该网络组件的事件。我相信您不能只在自定义 Web 组件上以通常的 react 方式处理事件。

<custom-button onClick={this.clickHandler}></custom-button>.  

我试过了,没用。

问题: 因此,我正在尝试通过 addEventListener 来监听事件,就像您在 vanilla js 中所做的那样,但事件处理程序永远不会被调用。

下面是一个例子。我知道<button/>不是自定义 Web 组件,但它演示了问题:

import React, { Component } from "react";

class App extends Component {
  constructor(props) {
    super(props);
    this.buttonRef = React.createRef();
  }
  componentDidMount() {
    // there are no errors attaching the handler
    this.buttonRef.current.addEventListener("onClick", e => {
      // this point is never reached
      debugger;
      console.log("onClick", e);
    });
  }
  render() {
    return <button ref={this.buttonRef}>click me</button>;
  }
}

export default App;

如有任何帮助,我们将不胜感激。

最佳答案

该事件称为 click ,而不是 onClick

关于javascript - React 应用程序中的 addEventListener 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50530162/

相关文章:

javascript - Angular - 带参数的方法的 Jest 单元测试

javascript - $ 不是函数。 Backbone 、jQuery 和 Browserify

javascript - 如何在node.js REPL中禁用 "special commands"?

javascript - this.refs.something.value 在 react 中返回未定义

angular - 在同一 Angular 项目中使用 Angular 元素

javascript - 在 vaadin 日期选择器中禁用整个月

javascript - 使用 jquery 仅删除位置相对内联样式

html - 更改最后一个表中的限制

javascript - 如何在 Json-server 和 Axios 中使用 delete 方法?

javascript - 使用 Open WC Karma-ESM 插件测试 Typescript 文件时出错