(react-native-svg错误)“试图注册具有相同名称RNSVGRect的两个视图”

ant*_*ani 5 reactjs react-native

react-native-svg产生错误:“试图注册具有相同名称RNSVGRect的两个视图”

我已经响应了本机项目,并且想在其中使用SVG。

我使用EXPO开始了项目。我正在使用yarn和npm添加模块。

我收到一条错误消息:“我试图用相同的名称RNSVGRect注册两个视图”时,我所做的就是尝试从react-native-svg导入Svg

import React from "react";
import Svg from "react-native-svg";
Run Code Online (Sandbox Code Playgroud)

小智 21

就我而言,问题如下:

在我的根文件夹中的 package.json 中有react-native-svg : 12.12.1.

当我尝试使用 walletConnect Provider 组件时收到此错误消息。这个图书馆有node_modules/@walletConnect/react-native-dapp/node_modules/package.json. 那里有"react-native-svg": "^9.6.4"

所以我只是将我的根react-native-svg 的版本更改为与walletConnect 中的版本相同的版本。错误消息消失了。


And*_*rew 8

您不能使用react-native-svg,Expo因为它需要链接。Expo已经包括react-native-svg可以将其作为一个依赖,然后再将其导入你使其感到困惑等等。

https://docs.expo.io/versions/latest/sdk/svg/

要在expo中使用svg,您可以按照以下步骤导入

import { Svg } from 'expo'
Run Code Online (Sandbox Code Playgroud)

您应该react-native-svg从您package.json和您的package-lock.json

您可以通过运行 npm uninstall —-save react-native-svg

您可以在这里查看有关卸载依赖项的更多信息 /sf/answers/914667421/

卸载依赖项后,应执行以下操作:

  1. 删除node_modules文件夹
  2. 关闭所有为博览会打开的窗口
  3. 删除 package-lock.json
  4. 跑 npm i
  5. 重新启动博览会 expo start -c


小智 5

对于我的 Expo 托管应用程序,我能够通过在我的package.json.

"resolutions": {
  "react-native-svg": "12.3.0"  
},
Run Code Online (Sandbox Code Playgroud)