ma-*_*-ku 10 javascript svg dom reactjs
我正在使用我的组件中的一些SVG图标做出反应应用程序.例如,我有一个SearchBar组件,其中包含输入元素以及一个包含搜索图标的按钮.
我通过在单个精灵文件中相应地设置xlinkHref属性,为所有SVG图标使用内联SVG.
一切似乎都运行得很好,除了我点击它们时我的SVG图标随机消失.包含图标的按钮元素不会消失,只会消失SVG图标.我检查了devtools上的DOM树,看起来有一个名为"#shadow-root"的节点存在问题.
当我的SVG图标可见时,它们被放置为"#shadow-root"的子节点.然而,当它们消失时,DOM树显示"#shadow-root"节点不再具有任何子节点,从而有效地使我的SVG图标无处可寻.
看到我可爱的SVG图标突然消失,令人心碎......
请指教!
-----编辑-----这是我用来插入SVG图标的组件的代码:
import React from "react";
const Icon = ({ name }) => (
<svg>
<use xlinkHref={`img/icons/sprite.svg#icon-${name}`} />
</svg>
);
export default Icon;
Run Code Online (Sandbox Code Playgroud)
您可以尝试其他方法来包含 SVG。我提到了三种可能性:
import logo from './logo.svg';
render() {...
<img src={logo} className="App-logo" alt="logo" />
...}
Run Code Online (Sandbox Code Playgroud)
import InlineSVG from 'svg-inline-react';
const svgSource = `<svg xmlns="......</svg>`;
<InlineSVG src={svgSource} />
Run Code Online (Sandbox Code Playgroud)
祝你好运。