2017-09-03 106 views
0

我想,所以我试图让SVG文件的情况下与require.context这样require.context给出不同的结果

const myIcons = require.context('myIcons/', true, /^\.\/.*\.svg$/) 
myIcons('./location.svg') 

问题是创建SVG图标的反应组分我得到的结果为data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDo... ,我希望它返回的东西更像<svg ...><path ..></svg>,就像它在svg文件中一样。

我试图谷歌它,但我没有找到任何相关的。 谢谢

+1

FYI你可能会碰到这里面问题:https://github.com/facebookincubator/create-react-app/issues/517我们在同一场景(svg-sprite-loader的svg组件)中尝试了require.context,然后使用通过简单的导出文件一个index.js。这是造成问题w Flow也 – ericat

回答

0

所以这是您选择的加载程序的正确行为。它已将其导入为base64映像。您现在可以将其放置在源代码中的图像标记中。

<img src={myIcons('./location.svg')} /> 

如果你想要它将在SVG代码本身加载的地方,你必须找到另一个加载器。我跑了一会儿,找不到一个人,但可能已经改变了。这一切都取决于你为什么需要完整的svg代码本身。

如果您需要代码,另一种选择是不将其作为svg文件,但创建一个React组件,并返回SVG代码。

export default() => (
    <svg>....</svg> 
) 
+0

你应该检查@丹尼的答案..它按预期工作。 – greW

相关问题