代码之家  ›  专栏  ›  技术社区  ›  user944513

无法在react中使用javascript读取null的属性“addEventListener”?

  •  2
  • user944513  · 技术社区  · 5 年前

    HTML 从服务器。我正在使用 dangerouslySetInnerHTML 现在我想在从服务器传入的HTML中绑定一个click事件,这里是我的代码 https://codesandbox.io/s/angry-shadow-1c4v8?file=/src/App.js

     useEffect(() => {
        const alertFunc = function () {
          alert("-----");
        };
        document.querySelector(".btn").addEventListener("click", alertFunc, false);
        // Specify how to clean up after this effect:
        return function cleanup() {
          document
            .querySelector(".btn")
            .removeEventListener("click", alertFunc, false);
        };
      });
    
    2 回复  |  直到 5 年前
        1
  •  1
  •   Sarun UK    5 年前

    这个问题是因为你的模板- <button className="btn">set countor </button> 就像下面一样。

    enter image description here

    class 而不是 className

     return {
        __html: '<button class="btn">set countor </button>'
      };
    

    工作代码- https://codesandbox.io/s/brave-meadow-qitjb?file=/src/App.js:87-157

        2
  •  1
  •   mccallofthewild    5 年前

    因为你的HTML不是HTML。是JSX。 className 是仅JavaScript的属性。

    而不是:

    <button className="btn">set countor </button>
    

    您需要:

    <button class="btn">set counter</button>