【发布时间】:2021-11-09 01:33:31
【问题描述】:
我正在尝试简单地加载本地图像并将其绘制到反应功能组件内的画布元素内的浏览器中,但我正在苦苦挣扎:
import { useEffect, useRef } from 'react';
export default function Canvas({ width, height }) {
const myCanvas = useRef();
useEffect(() => {
const context = myCanvas.current.getContext('2d');
const image = new Image();
image.src = '/home/ben/consensys/eth-og/src/static/preview.jpg';
context.drawImage(image, 0, 0, 100, 100);
})
return (
<canvas
ref={myCanvas}
width={width}
height={height}
/>
)
}
然后在 App.js 中:
import Canvas from './Canvas';
function App() {
return (
<Web3ReactProvider getLibrary={getLibrary}>
<div className="App">
<Canvas height={500} width={500} />
</div>
);
}
export default App;
我的浏览器正在显示画布元素,但上面没有图像,只是一个空的占位符。有什么想法吗?
【问题讨论】:
-
Your code does work。您确定图像的路径正确吗? (请注意,在示例中我给了
useEffect一个空的依赖数组,并在 Canvas 中使用了 width 和 height 属性。 -
是的,我认为路径名是问题所在。上一级目录中的图片称为“静态”。由于某种原因,'../static/preview.jpg' 不适用于 image.src。我应该将图像放在公用文件夹还是其他东西?