问题描述
我目前正在使用 state-machine-cat 为 reactJS 应用程序生成动态状态机图作为 SVG 图像。该库将 SVG 生成为字符串,因此我可以使用 <div dangerouslySetInnerHTML={{__html: svg}} />
将它们集成到 React 应用程序中。
我正在尝试对这些图像进行一些“后处理”,以便添加一些额外的 SVG 元素并将 onClick 事件处理程序附加到 SVG 中的特定节点。
如果这是纯 HTML,我会执行以下操作:
div.querySelectorAll("g.node").forEach((node) =>
{
const icon = document.createElementNS("http://www.w3.org/2000/svg","image");
icon.setAttribute("x",calcX(node));
icon.setAttribute("y",calcY(node));
icon.setAttribute("height","16");
icon.setAttribute("width","16");
icon.setAttribute("src","/badge.png");
icon.addEventListener('click',clickHandler(node));
node.appendChild(icon);
});
然而,ReactElements 在虚拟 DOM 中,因此它们不支持 querySelectorAll
等。我能找到的关于在 React 中操作 SVG 的所有示例都涉及在 React 中创建它,而这是在外部创建的我需要事后操纵它。
实现这一目标的最佳方法是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)