首页 > 解决方案 > Webcomponent自定义元素传函数onClick

问题描述

我想使用 ReactJS 将函数传递给自定义元素

ReactJS 组件

import React from 'react';
import './SampleComponent';

export  class Button extends React.Component {

  handleClick = (event) => {
    console.log(event)
  }

  render() {

    return (
      <div>
        <sample-component onclick="handleClick"></sample-component>
      </div>
    )
  }
};

自定义元素

class SampleComponent extends HTMLElement {
  static get observedAttributes() {

  }

  // custom methods
  render() {
    this.innerHTML = `Custom Element`;
  }

  // lifecycle hooks
  connectedCallback() {
    this.render();
  }

}

window.customElements.define('sample-component', SampleComponent);

据我了解,当我传递 onclick 函数时,handleClickJS 将在自定义元素实现中搜索它(这就是我在控制台中收到错误的原因)。那么如何传递一个函数呢?我试过"this.handle"了,但也没有用。

标签: javascriptreact-component

解决方案


由于反应文档,您的 html 应该如下所示

<sample-component onClick={handleClick}></sample-component>

推荐阅读