我需要呈现.svg文件。我不想使用危险的SetInnerHTML。我能够成功呈现一个SVG,如果我直接复制svg内容并从一个组件渲染它。React - 呈现导入的.svg文件
但是,这不是很可重用。我不想复制每个.svg文件中的内容。我希望能够导入一个svg文件,并将其传递到我的组件,然后将呈现内容。
这是我迄今为止所做的,但它不是呈现我的svg。
我已经创建了一个接受进口SVG文件,这样的组件:
import React from "react";
class SvgComponent extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
props.svg // this works if I copy my .svg contents here (<svg>....</svg>)
);
}
};
SvgComponent.propTypes = {
svg: React.PropTypes.string.isRequired,
};
export default SvgComponent;
这里是我如何使用该组件:
import mySvg from './images/mySvg.svg';
const Icon = (props) => {
return (
<svgComponent svg={mySvg} />
);
};
Icon.propTypes = {
icon: React.PropTypes.string.isRequired,
};
export default Icon;
这不起作用 - 它不会在网页上显示我的svg,甚至不会显示在我的网站上。当我检查网页,我看到的是一个空svgComponent:
<svgComponent />
上获得的.svg文件,以显示反应会很大的帮助!
可能的重复[如何使用webpack在我的React组件中直接加载SVG?](https://stackoverflow.com/questions/30844298/how-do-i-load-svgs-directly-in-my-react-component-using-webpack) – jeffesp
这不是重复的。我不想使用危险的SetInnerHTML。 – JAck28
够公平的。我错过了这部分问题。 – jeffesp