Javascript 在React组件中,如何制作<;span>;在clickabel中,调用此react组件的函数?

Javascript 在React组件中,如何制作<;span>;在clickabel中,调用此react组件的函数?,javascript,reactjs,Javascript,Reactjs,在反应组分MyComp中, 我有一个已解析的标记文本,我想让文本中的所有span都可以单击,并调用MyComp的函数 我用这句话来实现它,但它只能调用一个全局javascript函数。 让clickableSub=sub.replace(//g',) 您应该使用事件委派。将事件处理程序绑定到将标记呈现到其中的容器,然后检查事件是否起源于元素。例如 function handler(event) { if (event.target.tagName === 'SPAN') { con

在反应组分MyComp中, 我有一个已解析的标记文本,我想让文本中的所有span都可以单击,并调用MyComp的函数

我用这句话来实现它,但它只能调用一个全局javascript函数。

让clickableSub=sub.replace(//g',)

您应该使用事件委派。将事件处理程序绑定到将标记呈现到其中的容器,然后检查事件是否起源于
元素。例如

function handler(event) {
  if (event.target.tagName === 'SPAN') {
    console.log(event);
  }
}

function MyComp({html}) {
  return <div onClick={handler} dangerouslySetInnerHTML={{ __html: html }} />
}
函数处理程序(事件){
如果(event.target.tagName=='SPAN'){
console.log(事件);
}
}
函数MyComp({html}){
返回
}

您应该使用事件委派。将事件处理程序绑定到将标记呈现到其中的容器,然后检查事件是否起源于
元素。例如

function handler(event) {
  if (event.target.tagName === 'SPAN') {
    console.log(event);
  }
}

function MyComp({html}) {
  return <div onClick={handler} dangerouslySetInnerHTML={{ __html: html }} />
}
函数处理程序(事件){
如果(event.target.tagName=='SPAN'){
console.log(事件);
}
}
函数MyComp({html}){
返回
}

很有效,非常感谢!这几天这个问题让我发疯了。它很有效,非常感谢!这几天这个问题让我发疯。