Чтобы настроить преобразователь React Native SVG для Expo с помощью TypeScript (TS), вы можете выполнить шаги, описанные ниже:
-
Установить необходимые пакеты:
expo install react-native-svg expo install react-native-svg-transformerЭти пакеты необходимы для работы с файлами SVG в React Native.
-
Настройте Metro Bundler для преобразования файлов SVG:
Создайтеmetro.config.jsconst { getDefaultConfig } = require('metro-config'); module.exports = (async () => { const { resolver: { sourceExts, assetExts }, } = await getDefaultConfig(); return { transformer: { babelTransformerPath: require.resolve('react-native-svg-transformer'), }, resolver: { assetExts: assetExts.filter((ext) => ext !== 'svg'), sourceExts: [...sourceExts, 'svg'], }, }; })();Эта конфигурация указывает Metro Bundler использовать пакет
react-native-svg-transformerдля преобразования файлов SVG. -
Обновите
tsconfig.json, чтобы распознавать импорт SVG:
Добавьте следующие строки в файлtsconfig.json:{ "compilerOptions": { "allowJs": true, "esModuleInterop": true }, "include": ["src", "node_modules/react-native-svg-transformer"] }Это позволяет TypeScript распознавать импорт SVG, не выдавая ошибок.
-
Используйте файлы SVG в своем проекте:
Теперь вы можете импортировать и использовать файлы SVG в своих компонентах React Native. Например:import React from 'react'; import { View } from 'react-native'; import { SvgXml } from 'react-native-svg'; import MySvg from './path/to/MySvg.svg'; const MyComponent = () => { return ( <View> <SvgXml xml={MySvg} width={100} height={100} /> </View> ); }; export default MyComponent;