小编b00*_*tup的帖子

将 HTMLElement 转换为 React Element,并保留所有事件侦听器

将一些 JSON 数据渲染成一组可折叠的 HTML 元素是很容易的,使用像用于 Vanilla JS 的renderjson(npm 包)这样的库

const data = { sample: [1, 2, 3, 4], data: { a: 1, b: 2, c: ["hello", null] } };
const rjson = renderjson(data);
document.getElementById('to-render').append(rjson);
Run Code Online (Sandbox Code Playgroud)

在反应世界中

但是,renderjson返回一个 HTMLElement,而不是一个字符串。请注意,我不只是在这里尝试将 HTML 字符串转换为 React HTML。我正在尝试将 HTMLElement 转换为真正的 ReactElement。

所以,我实际上设法做到了这一点,但是由于我将 HTMLElement 解析为一个字符串,因此在 + 和 - 句柄(打开或折叠 json)上由renderjson生成的所有 onClick 事件侦听器在此过程中都丢失了.. ..

有没有人知道如何将 HTMLElement 对象转换为 React Element,同时保留所有原始事件处理程序?


我想,这里真正的问题是:renderjson包如何“重新打包”以变得对 React 友好?

这是一个代码和框,可以更容易地看到我在这里谈论的内容。

dom reactjs

6
推荐指数
1
解决办法
4050
查看次数

标签 统计

dom ×1

reactjs ×1