Как я могу использовать SVG в React Native?

Я пытаюсь использовать значки начальной загрузки в react native, и я не могу найти никаких полезных методов для рендеринга SVG в react-native. Кто-нибудь знает как?

3 ответа

Решение

Чтобы добавить SVG в react native, вы можете использовать response-native-svg

Установить:

пряжа добавить react-native-svg

Пример:

      import Svg, {
  Circle,
  Ellipse,
  G,
  Text,
  TSpan,
  TextPath,
  Path,
  Polygon,
  Polyline,
  Line,
  Rect,
  Use,
  Image,
  Symbol,
  Defs,
  LinearGradient,
  RadialGradient,
  Stop,
  ClipPath,
  Pattern,
  Mask,
} from 'react-native-svg';

/* Use this if you are using Expo
import * as Svg from 'react-native-svg';
const { Circle, Rect } = Svg;
*/

import React from 'react';
import { View, StyleSheet } from 'react-native';

export default class SvgExample extends React.Component {
  render() {
    return (
      <View
        style={[
          StyleSheet.absoluteFill,
          { alignItems: 'center', justifyContent: 'center' },
        ]}
      >
        <Svg height="50%" width="50%" viewBox="0 0 100 100">
          <Circle
            cx="50"
            cy="50"
            r="45"
            stroke="blue"
            strokeWidth="2.5"
            fill="green"
          />
          <Rect
            x="15"
            y="15"
            width="70"
            height="70"
            stroke="red"
            strokeWidth="2"
            fill="yellow"
          />
        </Svg>
      </View>
    );
  }
}

Или вы хотите импортировать SVG в свое приложение: react-native-svg-transformer

Пример:

      import Logo from "./logo.svg";

<Logo width={120} height={40} />

Но если вам нужна библиотека значков, вы можете использовать: react-native-vector-icons

Также здесь находится каталог: каталог React Native Vector Icons.

Рекомендованная посылка

      const logo = new URL('logo.svg', import.meta.url);
export function Logo() {return <img src={logo} alt="logo" />}

Я только что нашел простой способ решить эту проблему, который мне подходит.

Я использую Expo и у меня react-native-svgустановлен. Обратите внимание, что это отличается от импорта SvgUri из react-native-svg-uri. Это другая библиотека.

      import { SvgUri } from "react-native-svg";
      <SvgUri
  uri="https://example.com/uploads/apple.svg"
  width="40%"
  height="40%"
/>
Другие вопросы по тегам