javascript - 反应康瓦。动态导入 SVG
问题描述
我有一个带有 SVG 的文件夹。我需要在 Konva 的舞台上动态添加这些 SVG。我尝试使用这个组件。但它不起作用。
const URLImage = (name) => {
const [image] = useImage(`../images/svg/${name}.svg`);
return <Image image={image} />;
};
它仅在我进行常见导入时才有效:
import mySvg from '../images/svg/mySvg.svg';
....
const [image] = useImage(mySvg);
所以我该怎么做?=)
解决方案
如果您将图像放在static
orpublic
文件夹中,您使用的第一个代码就可以正常工作。我不知道您使用的是什么捆绑器,但其中许多(解析器、create-react-app 等)都有一个用于静态文件的特殊文件夹。
useImage(url)
没有像在模块系统中那样导入文件。在只是从网络地址下载图像。
据我所知import mySvg from '../images/svg/mySvg.svg';
,这是一种非标准但非常流行的静态文件导入方式。在mySvg
变量内部,您将有一个指向捆绑器将为您准备的图像的 URL。
推荐阅读
- reactjs - 如何将父级的道具存储在子组件中?
- ios - 近距离放大时折线消失
- php - 如何在 PHP 中解码包含 json 字符串作为值的 json 字符串?
- windows - 是否有包含最新 Windows 更新日期的变量
- swift - Bundle.main.loadNibNamed 中的内存泄漏
- python - Python中真正的关键字是什么?
- python - 旧列表中新列表的索引定位
- python - POST /api/sendimage 400 (BAD REQUEST) 来自浏览器的 Flask RESTful API
- scala - Scala 中的函数/方法。这是如何运作的?
- android - 嵌套在 RecyclerView 内的 GridView 不包裹高度并且只显示单行