繁体   English   中英

无法读取未定义 React-Native Firebase React-native-fetch-blob 的属性“DocumentDir”

[英]Cannot read property 'DocumentDir' of undefined React-Native Firebase React-native-fetch-blob

我已经用尽了互联网上的所有线程,但找不到解决方案。 我正在尝试使用 react-native-fetch-blob 从我的 react-native 应用程序将照片上传到 firebase。 RN ios simulator running iphone 6. Not using Expo I have NOT tried running on android emulator yet, due to android env setup on different computer.

此行导致错误。

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

我已经阅读了许多关于使用 react-native-fetch-blob 的教程。

我似乎无法正确链接它,或者请告诉我我的问题是什么。

"react": "16.0.0-beta.5",
"react-native": "0.49.3",
"react-native-fetch-blob": "^0.10.8",

我已经尝试过的...

npm install --save react-native-fetch-blob
react-native link 

...

npm install --save react-native-fetch-blob
react-native link react-native-fetch-blob

...

rm -rf node_modules, then reinstall, then clean and build

...我已经按照 WIKI 手动链接包。 已验证的软件包通过 SS 链接...

在所有这些场景之后清理和构建。

我不会列出我所做的一切,因为我已经在堆栈和 RNFB Issues/github 上尝试了所有内容。

这是 Xcode 的一些屏幕截图,RNFB 链接正确,或者至少我认为。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

我找到了这个https://github.com/benjreinhart/react-native-aws3

并将尝试通过 AWS 进行锻炼,直到有人可以帮助链接 fetch blob。 等我有时间上班再更新。

我终于设法安装了react-native-fetch-blob并通过以下方式摆脱了Cannot read property 'DocumentDir of undefined'

  1. 按照安装步骤(我使用 npm 安装模块)。
  2. 手动链接包

我认为我之前遗漏的重要部分是为 iOS 运行pod install 对于 Android,它以前对我不起作用的原因可能与我在项目中使用react-native-navigation的事实有关,这意味着我的MainApplication.java与默认的不同。 确保您在getPackages()方法中列出并初始化了库。

这是我的MainApplication.java供参考:

 public class MainApplication extends NavigationApplication { @Override protected ReactGateway createReactGateway() { ReactNativeHost host = new NavigationReactNativeHost(this, isDebug(), createAdditionalReactPackages()) { @Override protected String getJSMainModuleName() { return "index"; } }; return new ReactGateway(this, isDebug(), host); } @Override public boolean isDebug() { return BuildConfig.DEBUG; } protected List<ReactPackage> getPackages() { // Add additional packages you require here // No need to add RnnPackage and MainReactPackage return Arrays.<ReactPackage>asList( new MapsPackage(), new RNFetchBlobPackage() ); } @Override public List<ReactPackage> createAdditionalReactPackages() { return getPackages(); } @Override public void onCreate() { super.onCreate(); Fabric.with(this, new Crashlytics()); SoLoader.init(this, /* native exopackage */ false); } }

希望这可以帮助!

我正在清理我的项目并删除我不再需要的包。

我从我的项目中完全删除了 FBSDK 登录,现在没有更多错误。

“我的代码有效。我不知道为什么我的代码有效”

只需杀死所有节点进程并启动 npm 服务器并运行应用程序:

步骤1:运行命令killall -9 node对于windows用户,运行taskkill /im node.exe taskkill /f /im node.exe如果进程仍然存在,运行taskkill /f /im node.exe

第二步:运行命令npm start

步骤 3:运行命令react-native run-ios OR react-native run-android

你在使用世博会吗? 您必须删除 expo 并编辑您的 app.json 才能让您的应用再次运行。

这里有一个解决方法: https : //github.com/wkh237/react-native-fetch-blob/issues/299

不过我自己没试过。 我最终完全删除了博览会

编辑:

你能在你的 MainApplication.java 中试试这个吗:

 import com.RNFetchBlob.RNFetchBlobPackage;                                                                                 
 protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
          new RNFetchBlobPackage()                                                                                         
      );
    }
  };

来源: https : //github.com/wkh237/react-native-fetch-blob/wiki/Manually-Link-Package

我通过以下方式获得了对应用程序本地目录的访问权限

 RNFetchBlob.fs.dirs.SDCardApplicationDir

您可以附加RNFetchBlob.fs.dirs.SDCardApplicationDir+"/files"以进入应用程序的文档目录。

只需将您的rn-fetch-blob版本更新为“0.10.15”,然后它对我有用。

对于 2021 年的人们:您很可能缺少一个名为react-native-blob-util的依赖react-native-blob-util

就我而言,我没有终止项目一的 Metro 捆绑器并构建项目二,这就是我的 Metro 接受项目配置的原因。 所以我终止了项目一的地铁捆绑器并构建项目二,它启动了自己的地铁捆绑器,一切正常。

TypeError: 无法分配给 object 的只读属性 '#<object> ' Redux Tool Kit Slice for Firebase Storage REACT NATIVE<div id="text_translate"><p> 您好,我在上传到 firebase 存储后尝试设置我的 downloadUrl,但我似乎无法让它与 Redux 工具包一起使用。 我有一个解决方案,但我宁愿以正确的方式使用它,但我似乎无法弄清楚它是否愿意得到一些反馈</p><pre> incrementByAmount: (state, action) =&gt; { state.value += action.payload },</pre><p> 这是<strong>文档</strong>示例。 我知道数字与对象的工作方式不同,<strong>但如果他们可以像这样改变它,为什么我不能呢?</strong></p><pre> setImageUrl: (state, action: PayloadAction&lt;string&gt;) =&gt; { state.imageUrl = action.payload; },</pre><p> <strong>这就是我所说的</strong></p><pre> const downloadUrl = await FirebaseStorageService.uploadFile( photo, setUploadProgress ); dispatch(setImageUrl(downloadUrl));</pre><p> 这是错误</p><pre>ossible Unhandled Promise Rejection (id: 5): TypeError: Cannot assign to read only property 'imageUrl' of object '#&lt;Object&gt;' TypeError: Cannot assign to read only property 'imageUrl' of object '#&lt;Object&gt;'</pre><p> 提前谢谢你 我在其他地方看到过类似的问题,但我觉得答案不清楚。 我可以直接或不使用 RTK 更改 object 的属性吗?</p></div></object>

[英]TypeError: Cannot assign to read only property '' of object '#<Object>' Redux Tool Kit Slice for Firebase Storage REACT NATIVE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Firebase 是 react-native 后端 TypeError: 无法分配给 object 的只读属性 '#<object> ' Redux Tool Kit Slice for Firebase Storage REACT NATIVE<div id="text_translate"><p> 您好,我在上传到 firebase 存储后尝试设置我的 downloadUrl,但我似乎无法让它与 Redux 工具包一起使用。 我有一个解决方案,但我宁愿以正确的方式使用它,但我似乎无法弄清楚它是否愿意得到一些反馈</p><pre> incrementByAmount: (state, action) =&gt; { state.value += action.payload },</pre><p> 这是<strong>文档</strong>示例。 我知道数字与对象的工作方式不同,<strong>但如果他们可以像这样改变它,为什么我不能呢?</strong></p><pre> setImageUrl: (state, action: PayloadAction&lt;string&gt;) =&gt; { state.imageUrl = action.payload; },</pre><p> <strong>这就是我所说的</strong></p><pre> const downloadUrl = await FirebaseStorageService.uploadFile( photo, setUploadProgress ); dispatch(setImageUrl(downloadUrl));</pre><p> 这是错误</p><pre>ossible Unhandled Promise Rejection (id: 5): TypeError: Cannot assign to read only property 'imageUrl' of object '#&lt;Object&gt;' TypeError: Cannot assign to read only property 'imageUrl' of object '#&lt;Object&gt;'</pre><p> 提前谢谢你 我在其他地方看到过类似的问题,但我觉得答案不清楚。 我可以直接或不使用 RTK 更改 object 的属性吗?</p></div></object> Firebase支持确认react-native应用 如何去除 react-native firebase 依赖 React-native 与 Firebase FCM 不工作 flatlist 不呈现对象数组 [React-Native] [Firebase] 在 Firebase React-Native 应用程序中按名称删除项目 如何使用 firebase mlkit 和 react-native? 安装 react-native-firebase/app 后,Build 将在 react-native ios 中失败 没有重新渲染? Firebase和React-Native注册后登录
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM