javascript - 如何更改 svg 文件中的路径 ID?

标签 javascript svg

我从服务器获取 svg 代码,我必须更改某些特定路径的 Id。

(例如,在下面的代码中,我想向预处理器添加一些内容,以将已操作的路径的 Id 更改为“targetPath”,以便我可以访问 useEffect Hook 中的路径。)

import React, { useEffect, useState } from 'react';
import SVG from 'react-inlinesvg';

const PaintObject = ({ objectdata, selectedColor }) => {
  const [loaded, setLoaded] = useState(false);
  const [color, setColor] = useState('#fff');

  useEffect(() => {
    if (loaded) {
      const path = document.getElementById('targetPath');
      path
        && path.addEventListener(
          'click',
          () => setColor(selectedColor),
          false,
        );
    }
  }, [loaded, selectedColor]);

  return (
    <SVG
      src={objectdata.image}
      style={{ color }}
      onLoad={() => setLoaded(true)}
      preProcessor={(code) => code.replace('fill="#fff"', 'fill="currentcolor"')}
    />
  );
};
export default PaintObject;

最佳答案

.replace(/id=".*?"fill="currentcolor"/, 'id="targetPath"fill="currentcolor"')

将其添加到预处理器就是解决方案。

关于javascript - 如何更改 svg 文件中的路径 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65263466/

相关文章:

javascript - 如何计算工资中的税

javascript - 自动换行后的文本溢出省略号

return 语句中的 JavaScript && 运算符

javascript - 机场的 Google Places 自动完成功能

javascript - 我是否需要 Web Workers 来循环 AJAX 请求?

jquery - 如何使用 jQuery SVG 插件设置 SVG 矩形元素的背景图像?

html - 如何拉伸(stretch)活型

html - 在不知道原始颜色的情况下在悬停时减轻 svg 部分

javascript - snap.svg 拖动 "real"位置

javascript - 如何为我的 SVG 路径设置动画