SVG 是在 React Native 應用程式中顯示可擴展、基於向量的圖形的強大方法。然而,如果 SVG 程式碼設定不正確,自訂填充等屬性有時會很棘手。當填滿屬性在 SVG 中進行硬編碼時會出現一個常見問題,從而防止動態顏色變化。
本部落格解釋了發生這種情況的原因,並提供了在 React Native 中自訂 SVG 顏色的解決方案。
安裝和設定:
a) 安裝:
yarn add react-native-svg && yarn add react-native-svg-transformer --dev
b) 在根目錄中使用以下命令建立/更新 Metro.config.js:
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); const defaultConfig = getDefaultConfig(__dirname); const { assetExts, sourceExts } = defaultConfig.resolver; /** * Metro configuration * https://facebook.github.io/metro/docs/configuration * * @type {import('metro-config').MetroConfig} */ const config = { transformer: { babelTransformerPath: require.resolve('react-native-svg-transformer'), }, resolver: { assetExts: assetExts.filter((ext) => ext !== 'svg'), sourceExts: [...sourceExts, 'svg'], }, }; module.exports = mergeConfig(defaultConfig, config);
現在你可以在 React Native 中使用 svg 檔案了。
了解問題
考慮這個 SVG 檔案範例:
<svg width="4" height="18" viewbox="0 0 4 18" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.9987 4.41667C0.986176 4.41667 0.165365 3.59586 0.165365 2.58333C0.165365 1.57081 0.986176 0.75 1.9987 0.75C3.01122 0.75 3.83203 1.57081 3.83203 2.58333C3.83203 3.59586 3.01122 4.41667 1.9987 4.41667Z" fill="#EFF2F6"></path> </svg>
解決方案 1:使用 currentColor
將填滿屬性動態化最簡單的方法是用 currentColor 取代硬編碼的填滿值。 currentColor 值繼承傳遞給元件的顏色或填滿屬性。
更新的 SVG:
<svg width="4" height="18" viewbox="0 0 4 18" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.9987 4.41667C0.986176 4.41667 0.165365 3.59586 0.165365 2.58333C0.165365 1.57081 0.986176 0.75 1.9987 0.75C3.01122 0.75 3.83203 1.57081 3.83203 2.58333C3.83203 3.59586 3.01122 4.41667 1.9987 4.41667Z" fill="currentColor"></path> </svg>
React Native 中的用法:
<threedots height="100%" fill="#707070"></threedots>
現在,fill 屬性可以動態控制 SVG 的顏色。
解決方案2:使用React Native的react-native-svg
如果您使用react-native-svg來處理SVG,您可以為SVG建立一個React元件並將填充作為道具傳遞。
這是一個例子:
import Svg, { Path } from 'react-native-svg'; const ThreeDots = ({ height = "100%", fill = "#707070" }) => ( <svg width="4" height="18" viewbox="0 0 4 18" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M1.9987 4.41667C0.986176 4.41667 0.165365 3.59586 0.165365 2.58333C0.165365 1.57081 0.986176 0.75 1.9987 0.75C3.01122 0.75 3.83203 1.57081 3.83203 2.58333C3.83203 3.59586 3.01122 4.41667 1.9987 4.41667Z" fill="{fill}"></path> </svg> ); export default ThreeDots;
用法:
<threedots height="100%" fill="#FF0000"></threedots>
fill 屬性現在動態傳遞到
結論
透過使用 currentColor、react-native-svg 或自訂 SVG 元件,您可以動態控制 React Native 應用程式中的填滿屬性。這可以提供更大的靈活性,並確保您的設計是動態的並且能夠響應用戶互動或主題更改。
以上是如何在 React Native 中動態地將顏色應用於 SVG的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript核心數據類型在瀏覽器和Node.js中一致,但處理方式和額外類型有所不同。 1)全局對像在瀏覽器中為window,在Node.js中為global。 2)Node.js獨有Buffer對象,用於處理二進制數據。 3)性能和時間處理在兩者間也有差異,需根據環境調整代碼。

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具