javascript - 如何在动态字符串的react js中事件监听器或单击监听器?

标签 javascript reactjs

我从服务器示例选项卡标记获取动态字符串。我想在该标记上添加事件监听器或单击监听器。要将 HTML 转换为 React 组件,我使用此 npm module html to React https://www.npmjs.com/package/html-to-react

是否可以将点击监听器添加到所有列表项,或者换句话说,添加到所有 li

这是我的代码

https://codesandbox.io/s/sleepy-bardeen-59dus?file=/src/App.js

import "./styles.css";

var HtmlToReactParser = require("html-to-react").Parser;

var htmlInput =
  '<div><h1>Title</h1><p>A paragraph</p><section class="rt01 rt01v0 cpad" data-trackas="rt01"><div class="rt01w1 cwidth"><ul class="rw-inpagetabs" data-ocomid="inpagetabs"><li><a href="#tab1">Lorem Ipsum</a></li><li><a href="#tab2">Ipsum 1</a></li><li><a href="#tab3">Ipsum 2</a></li><li><a href="#tab4">Ipsum 3</a></li><li><a href="#tab5">Ipsum 4</a></li></ul><!-- CONTENT PLACEHOLDER --></div></section></div>';
var htmlToReactParser = new HtmlToReactParser();
export default function App() {
  var reactElement = htmlToReactParser.parse(htmlInput);
  return (
    <div className="App">
      <h1>Hello CodeSandbox</h1>
      <h2>Start editing to see some magic happen!</h2>
      {reactElement}
    </div>
  );
}

最佳答案

我还没有使用过这个包,但是在这种情况下利用事件冒泡怎么样?

const clickHandler = event => {
  const li = event.target.closest('.rw-inpagetabs > li');

  if (li === null) return;

  // do something, for example:
  const tabLink = li.querySelector(':scope > a');
  console.log(tabLink.href);
};

return (
  <div className="App" onClick={clickHandler}>
    <h1>Hello CodeSandbox</h1>
    <h2>Start editing to see some magic happen!</h2>
    {reactElement}
  </div>
);

关于javascript - 如何在动态字符串的react js中事件监听器或单击监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68370189/

相关文章:

javascript - 如何在 Next JS 中使用对象数组进行路由?

javascript - 为什么 Bootstrap 的 Dropdown Toggle 在某些环境下有效而在其他环境下无效?

javascript - iPhone (iOS) 从网站上的链接下载 MP4

javascript - 当前对象属性作为同一对象不同属性中的值

javascript - 微服务可以用JS应用到前端吗?

javascript - react : I have a component that renders user data and I want to display an error message underneath the section if there's an error rendering the data

javascript - 使用相同的类名命名整个列

javascript - 我应该如何将此对象存储在 Redis 中?

reactjs - 禁用 create-react-app 提供的 ESLint

javascript - 如何使用 React 更改 slider 拇指颜色