【问题标题】:RNFetchBlob requires main queue setupRNFetchBlob 需要主队列设置
【发布时间】:2025-11-23 17:55:02
【问题描述】:

将 RNFetchBlob 与 React Native 一起使用时,我收到一个黄色警告屏幕,上面写着:

模块 RNFetchBlob 需要设置主队列,因为它会覆盖 constantsToExport 但没有实现 requiresMainQueueSetup。在 未来版本 React Native 将默认初始化所有原生 后台线程上的模块,除非明确选择退出。

我正在使用 react-native 0.56.0 和 react-native-fetch-blob: 0.10.8。这以前适用于 react-native 0.54.2。

这个错误到底告诉我什么?究竟什么是主队列设置?我应该怎么做才能解决这个问题?谢谢!

【问题讨论】:

标签: react-native


【解决方案1】:

原来react-native-fetch-blob 不再受支持,我需要改用rn-fetch-blob。要解决此问题,我必须执行以下操作:

  1. react-native unlink react-native-fetch-blob
  2. npm 卸载 --save react-native-fetch-blob
  3. npm install --save rn-fetch-blob
  4. react-native 链接

然后我不得不更改所有使用的行:

import RNFetchBlob from 'react-native-fetch-blob';

到:

import RNFetchBlob from 'rn-fetch-blob';

现在一切都在按应有的方式工作。

【讨论】:

  • 这应该是公认的答案。对于 iOS,请不要在 iOS 文件夹中运行 pod install 才能正常工作。
【解决方案2】:

如果你使用的是react native 0.63.3,将react-native-fetch-blob替换为rn-fetch-blob后就没有link命令,所以别忘了在ios目录下执行pod install

【讨论】:

  • 这应该是现代 RN 的最新答案。