【问题标题】:Null is not an object (evaluating 'RNFetchBlob.DocumentDir') using ExpoNull 不是使用 Expo 的对象(评估“RNFetchBlob.DocumentDir”)
【发布时间】:2020-12-01 04:36:46
【问题描述】:

我正在使用 Expo 并尝试使用 react-native-fetch-blob 下载文件

import RNFetchBlob from 'rn-fetch-blob';

RNFetchBlob.fetch('GET', 'http://www.example.com/images/img1.png')
  .then((res) => {
    let status = res.info().status;
  })
  .catch((errorMessage, statusCode) => {
  })

发生错误:null is not an object (evalating 'RNFetchBlob.DocumentDir')

我已经尝试过的:

npm install --save react-native-fetch-blob
react-native link 
npm install --save react-native-fetch-blob
react-native link react-native-fetch-blob
var RNFetchBlob = require('rn-fetch-blob').default
RNFB_ANDROID_PERMISSIONS=true react-native link

我不能manually linking,因为我使用 expo 并且没有 /ios 和 /android 文件夹。

谁能帮忙,如何解决这个问题? rn-fetch-blob 是否与 Expo 合作?

【问题讨论】:

  • 您重启了展会吗?如果没有,请在重新启动博览会后重试。
  • 只是Ctrl+C 再运行npm start?如果是这样,我做了很多次。
  • 安装新包后,有时需要重新运行项目。因为 expo 服务器只重新编译 js 部分而不是你的实际本机部分。它对你有用吗?
  • 不幸的是没有

标签: react-native expo


【解决方案1】:

rn-fetch-blob 不适用于 expo。

rn-fetch-blob 实现了原生代码,所以不能在 expo 中使用 基于项目。 你需要退出世博会

Does rn-fetch-blob work with Expo?

【讨论】:

    【解决方案2】:

    在你使用结果之前添加另一个 .then。像这样: const 结果= res.json()

    如果需要查看状态,直接使用res.status

    【讨论】:

    • 不幸的是,它没有帮助。即使我不使用任何 RNFetchBlob 函数,也只有一个字符串 import RNFetchBlob from 'rn-fetch-blob' 会导致此错误
    【解决方案3】:

    将目录更改为:ios 并运行:pod install,如果您已在真机上从 XCode 运行该应用,请再次re-run

    【讨论】:

      猜你喜欢
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 2022-01-05
      • 2021-10-20
      • 2016-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多