用React hook將SVG圖檔儲存成PNG

這篇分享一下如何將React網頁上的SVG圖片儲存成PNG圖片,這裡因為使用react hook會不太知道該怎麼寫的部份,就是forwardRef該怎寫。

安裝套件

yarn add save-svg-as-png

引用套件

import { saveSvgAsPng } from 'save-svg-as-png';

在App.js中寫一個按鈕用來處理儲存,並用useRef接上SVG圖檔

function App() {
const refSvg = React.useRef(null);

const savePNG = () => {
saveSvgAsPng(refSvg.current, '圖檔.png', { scale: 2 });
};

return (
<>
<SvgCanvas ref={refSvg}></SvgCanvas>
<button onClick={savePNG}>下載png</button>
</>
);

在我們的SvgCanvas.js中則是加上React.forwardRef

const SvgCanvas = React.forwardRef((props, ref) => {
return (
<svg xmlns="http://www.w3.org/2000/svg" ref={ref}>
...
</svg>
);
});


留言