Webcomponent自定义元素传递函数onClick

时间:2018-11-20 10:26:46

标签: javascript web-component

我想使用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函数handleClick时,JS将在Custom Element实现中搜索它(这就是为什么在控制台中出现错误的原因)。那么如何传递函数呢?我尝试了"this.handle",但是也没有用。

1 个答案:

答案 0 :(得分:1)

由于反应Documentation,您的html应该看起来像这样

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