【问题标题】:Invariant Violation: Native component for "RNSVGSvgView" does not exist不变违规:“RNSVGSvgView”的本机组件不存在
【发布时间】:2017-12-06 11:11:31
【问题描述】:

经过几天的互联网研究,我仍然没有解决我的问题。 我正在使用 react-native-svg 并且我遇到了同样的问题: No component found for view with the name "RNSVGPath"

或者这个: Invariant Violation: Native component for "RNSVGSvgView" does not exist

我尝试了很多东西,包括:

react-native unlink react-native-svg
npm uninstall react-native-svg
npm install react-native-svg
react-native link react-native-svg
react-native run-ios

还有:

pod 'RNSVG', :path => '../node_modules/react-native-svg'
rm -rf node_modules
npm install
react-native run-ios

但还是没有... 这是我正在使用的版本:

"dependencies": {
    "react": "16.1.1",
    "react-native": "0.50.3",
    "react-native-svg": "^6.0.1-rc.1"
}

我尝试直接从 XCode 构建它,但仍然没有...

感谢你们的帮助!

【问题讨论】:

    标签: ios svg react-native react-native-ios


    【解决方案1】:

    你应该尝试这样做:

    npm install react-native-svg --save //(again)
    react-native link react-native-svg //(again)
    watchman watch-del-all
    rm -rf node_modules/ && yarn cache clean && yarn install
    

    然后在另一个终端

    npm start -- --reset-cache
    

    在使用 react-native run-ios 启动您的 ios 应用程序之前,您必须手动将 libRNSVG.a 添加到 Xcode 中的链接框架和库中

    然后……多田

    【讨论】:

    • 对于 android 它可以工作,但对于 ios,不幸的是,没有
    【解决方案2】:

    SVG 问题,我也塞了 4 个小时,得到了解决方案。

    自动链接:

    react-native link react-native-svg
    

    不能自动工作,然后手动进行。

    手动链接:

    1 将以下行追加到android/settings.gradle:

    include ':react-native-svg'
    project(':react-native-svg').projectDir = new File(rootProject.projectDir,  '../node_modules/react-native-svg/android')
    

    2 在 android/app/build.gradle: 的依赖块内插入以下行

    implementation project(':react-native-svg')
    

    3 打开`android/app/src/main/java/[...]/MainApplication.java

    • import com.horcrux.svg.SvgPackage; 添加到文件顶部的导入中。
    • new SvgPackage() 添加到getPackages() 方法返回的列表中。如果前一项已经有内容,请在前一项中添加逗号。

    【讨论】:

      【解决方案3】:

      我遇到了这个问题,因为从 RN 0.51 开始,“react-native 链接”就被破坏了。完全删除并重新安装后手动链接修复它在 iOS 上。

      【讨论】:

        【解决方案4】:

        Svg 版本有问题

        首先,取消链接 svg,然后删除 svg 的 npm,然后安装新的

        "dependencies": {
            "react": "16.1.1",
            "react-native": "0.44.0",
            "react-native-svg": "5.1.8"
        }
        

        【讨论】:

        • 感谢您的回复!问题是我们刚刚升级到 react-native 0.50.3 并且不想回到旧版本。还有其他解决方案吗?
        • 其实 svg 包有一个依赖列表列出了支持版本的 react native 遍历文档
        【解决方案5】:

        我遇到了同样的问题,但在 Android 上。

        所以,如果你处于相同的情况,这里有一些东西可以解决它,这个问题专门发生在 MainApplication 上,所以你想看看:

        • 打开android/app/src/java/com/*/MainApplication.java
        • import com.horcrux.svg.SvgPackage; 与其他导入一起添加到顶部
        • new SvgPackage()与列表中的其他getPackages()一起添加(~第30行)

        【讨论】:

          猜你喜欢
          • 2018-05-25
          • 1970-01-01
          • 1970-01-01
          • 2020-05-06
          • 2022-08-19
          • 1970-01-01
          • 2016-01-30
          • 1970-01-01
          相关资源
          最近更新 更多