當我們添加一張svg圖片顯示時,react提示找不到檔案,
我們可以在全域檔案global.d.ts內,添加圖片型別的宣告:
詳見《TypeScript 參考資源檔案后提示找不到的錯誤處理方案》
宣告之后,參考不報錯了,然后我們看看svg圖片,里面有顏色及其它設定:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 3 <title>視窗_回傳</title> 4 <g id="控制元件" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> 5 <g id="視窗_回傳"> 6 <rect id="Rectangle-6" fill="#D8D8D8" opacity="0" x="0" y="0" width="24" height="24"></rect> 7 <path d="M8.35417135,12.9957726 C8.13320936,12.7345458 8,12.3967967 8,12.0279541 C8,11.6586058 8.13357489,11.3204363 8.3550807,11.0590615 L8.3521103,11.0564202 L14.356041,4.51971371 L14.3599873,4.52318728 C14.635253,4.20288524 15.0434555,4 15.4990737,4 C16.3280124,4 17,4.67157288 17,5.5 C17,5.8870199 16.8533375,6.23980607 16.6125263,6.50587693 L16.6210783,6.51340439 L11.5390798,12.0228281 L16.5124905,17.3935277 C16.8121157,17.6677653 17,18.0619548 17,18.5 C17,19.3284271 16.3280124,20 15.4990737,20 C15.0262153,20 14.6044287,19.7814702 14.3293154,19.439953 L8.35278214,12.9970098 L8.35417135,12.9957726 L8.35417135,12.9957726 Z" id="Oval-43-Copy-3" fill="#808080"></path> 8 </g> 9 </g> 10 </svg>
是否可以根據一張svg,顯示不同的效果?比如hover后高亮
理論上添加xml代碼決議,然后將svg以組件形式添加渲染,是可行的,
在網上逛了一圈,發現大多數都比較水,很多是通過加載全域的圖片,作為單獨組件或者快取來使用,不適用
react-inlinesvg
發現了一個比較不錯的開源,超級不錯,安利!
https://github.com/gilbarbara/react-inlinesvg
安裝:npm i react-inlinesvg 或者 yarn add react-inlinesvg
添加參考:import SVG from 'react-inlinesvg';
添加圖片:
1.import BackPng from '../../../../assets/images/back.svg'; 2.<SVG className="backIcon" src=https://www.cnblogs.com/kybs0/p/{BackPng} /> 設定動態樣式:1 &:hover { 2 path { 3 fill: #4ecb78; 4 } 5 .backContent { 6 color: #4ecb78; 7 } 8 } 9 &:active { 10 path { 11 fill: #2baf57; 12 } 13 .backContent { 14 color: #2baf57; 15 } 16 }

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/5410.html
標籤:Html/Css
