ホームページ >ウェブフロントエンド >jsチュートリアル >React Native プロジェクトでの SVG ファイルのインポート: 包括的なガイド
React Native プロジェクトでの SVG ファイルの使用は、Web アプリケーションで使用するのと同じくらい簡単です。 React-native-svg-transformer ライブラリは、インポートされた SVG 画像を React コンポーネントに変換することでこれを可能にします。このガイドでは、React Native プロジェクトでの react-native-svg-transformer のインストール、構成、使用方法について説明します。
まず、react-native-svg ライブラリがインストールされていることを確認してください。このライブラリは、React Native で SVG 画像をレンダリングするために必要なコンポーネントを提供します。
インストールするには、次のコマンドを実行します:
npm install react-native-svg
または
yarn add react-native-svg
詳しいインストール手順については、react-native-svg GitHub ページを参照してください。
次に、react-native-svg-transformer ライブラリをインストールします。これにより、SVG ファイルが React コンポーネントに変換されます。
インストールするには、次のコマンドを実行します:
npm install --save-dev react-native-svg-transformer
または
yarn add --dev react-native-svg-transformer
セットアップ (Expo または React Native CLI) に応じて、構成は異なります。以下は、さまざまな環境の構成です:
次の構成で Metro.config.js ファイルを作成または更新します。
const { getDefaultConfig } = require("expo/metro-config"); module.exports = (() => { const config = getDefaultConfig(__dirname); const { transformer, resolver } = config; config.transformer = { ...transformer, babelTransformerPath: require.resolve("react-native-svg-transformer/expo") }; config.resolver = { ...resolver, assetExts: resolver.assetExts.filter((ext) => ext !== "svg"), sourceExts: [...resolver.sourceExts, "svg"] }; return config; })();
次の構成で Metro.config.js ファイルを作成または更新します。
const { getDefaultConfig, mergeConfig } = require("@react-native/metro-config"); const defaultConfig = getDefaultConfig(__dirname); const { assetExts, sourceExts } = defaultConfig.resolver; /** * Metro configuration * https://reactnative.dev/docs/metro * * @type {import('metro-config').MetroConfig} */ const config = { transformer: { babelTransformerPath: require.resolve( "react-native-svg-transformer/react-native" ) }, resolver: { assetExts: assetExts.filter((ext) => ext !== "svg"), sourceExts: [...sourceExts, "svg"] } }; module.exports = mergeConfig(defaultConfig, config);
次の構成で Metro.config.js ファイルを作成または更新します。
const { getDefaultConfig } = require("metro-config"); module.exports = (async () => { const { resolver: { sourceExts, assetExts } } = await getDefaultConfig(); return { transformer: { babelTransformerPath: require.resolve( "react-native-svg-transformer/react-native" ) }, resolver: { assetExts: assetExts.filter((ext) => ext !== "svg"), sourceExts: [...sourceExts, "svg"] } }; })();
expo-cli を使用せずに Expo モジュールを使用するプロジェクトの場合、React Native のトランスフォーマーを正しく使用するためにトランスフォーマー パスを調整する必要がある場合があります。
-require.resolve("react-native-svg-transformer") +require.resolve("react-native-svg-transformer/react-native")
あるいは、Expo のトランスフォーマーを常に使用するように強制します。
-require.resolve("react-native-svg-transformer") +require.resolve("react-native-svg-transformer/expo")
プロジェクトで TypeScript を使用する場合は、SVG ファイルのモジュールを宣言する必要があります。以下を Declarations.d.ts ファイルに追加します (存在しない場合は作成します):
declare module "*.svg" { import React from "react"; import { SvgProps } from "react-native-svg"; const content: React.FC981cdbd8ae5a6d67f095ee0236cff3c4; export default content; }
インストールと構成後、他のコンポーネントと同様に、SVG ファイルを React コンポーネントにインポートして使用できます。
例:
SVG ファイルをインポートします:
import Logo from "./logo.svg";
SVG をコンポーネントとして使用します:
<Logo width={120} height={40} />
このガイドに従うことで、SVG ファイルを React Native プロジェクトにシームレスに統合し、開発ワークフローを強化し、さまざまなプラットフォーム間での一貫性を維持できるようになります。
もっと記事を読むには私をフォローしてください!
以上がReact Native プロジェクトでの SVG ファイルのインポート: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。