在UIManager中找不到React Native PDF视图“ PDFView”

时间:2019-08-30 17:12:28

标签: react-native pdf

我正在尝试从我的React本机项目中的URL打开PDF。

我创建了一个打开的报告文件:

import React, { Component } from 'react';
import PDFView from 'react-native-view-pdf';

class OpenBGReport extends Component {
  render() {
    return (
      <PDFView
        style={{ flex: 1 }}
        onError={(error) => console.log('onError', error)}
        onLoad={() => console.log('PDF rendered from url')}
        resource="http://www.pdf995.com/samples/pdf.pdf"
        resourceType="url"
      />
    );
  }
}

export default OpenBGReport;

但是,我遇到了错误:Invariant Violation: Invariant Violation: requireNativeComponent: "PDFView" was not found in the UIManager.

我已经尝试过运行npm link react-native-pdf-view但仍然存在相同的错误。

如何在React Native中从URL打开PDF?

谢谢

1 个答案:

答案 0 :(得分:0)

这是您手动链接到iOS的方式:

cd ios/ && pod deintegrate

然后将以下内容添加到您的Podfile

pod 'RNPDF', :path => '../node_modules/react-native-view-pdf'

然后运行pod install

这是您手动链接Android的方式:

  1. 转到您的MainApplication.java并将以下内容添加到文件顶部:

    import com.rumax.reactnative.pdfviewer.PDFViewPackage;

然后在其下方:

@Override
    protected List<ReactPackage> getPackages() {
      @SuppressWarnings("UnnecessaryLocalVariable")
      List<ReactPackage> packages = new PackageList(this).getPackages();
      // Packages that cannot be autolinked yet can be added manually here, for example:
      // packages.add(new MyReactNativePackage());
      packages.add(new PDFViewPackage());
      return packages;
    }
  1. android/settings.gradle中,添加:
    include ':react-native-view-pdf'
    project(':react-native-view-pdf').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-view-pdf/android')
  1. android/app/build.gradle中,添加:

    implementation project(':react-native-view-pdf')

请记住,由于您说的是RN 0.59.8,因此您只需要执行上述操作,就无需进行RN 60ish之后的操作,因为所有内容现在都已自动关联。