我的应用程序应根据路线呈现大约30000个svg元素。 如果路线类似www.myapp.com/svg-data/person,它应该呈现person.svg。作为反应组件加载svg dinamically
稍后(相同的路径),可以修改此svg:添加背景颜色,一些文本或某些预定义的图层。 我想我应该加载svg作为反应组件。我正在看图书馆https://github.com/boopathi/react-svg-loader,但我不认为它真的适合我的目的。
我的最后一个问题是关于获取SVG数据作为串并使其返回除其他事物的SVG一个组件内...
我应该建立一个通用组件,呈现自带作为参数任何SVG :
componentDidMount() {
if (this.props.params.searchText) {
this.props.requestSVG(this.props.params.searchText)
}
}
componentWillReceiveProps(nextProps) {
if (this.props.params.searchText !== nextProps.params.searchText) {
this.props.requestSVG(nextProps.params.searchText)
}
}
这部分将呈现类似:
render() {
const {svgData, textForSVGData} = this.props
let svgText=null
if (textForSVGData) {
svgText= <text x='250' y='150' font-size='55'> {textForSVGData} </text>
}
return (
<svg>
{this.props.svgData}
{svgText}
</svg>
)
}
根据道具应该添加文本,或者在需要的任何其他东西。我想念什么?这是做这件事的好方法吗?
我正在使用webpack。只是不知道如何将30000个svg组件集成到我的js代码中! – user2670996