开发者问题收集

在 React Native 应用中导入 Amplify 会引发错误“null 不是对象(正在评估‘keys.filter’)”

2022-06-20
614

每次我将 Amplify 导入到我的 React Native 项目的 App.js 文件中时,都会出现以下错误:

TypeError: null is not an object (evaluating 'keys.filter')

这是我导入它的方式:

在此处输入图像描述

我仅使用 Expo 运行该项目。如果我注释掉 import Amplify 行,则任何其他使用与 Amplify 相关内容的文件都会导致发生相同的错误。

最初,当我第一次加载此项目时,我遇到了其他错误,例如首先需要创建 aws-exports.js 文件。我从一个旧项目中复制了这个(因为这意味着要重新完成另一个已经设置好的项目)。一旦我包含该文件,我就必须更新该文件中的几行,因为对 expo 中的链接的引用不正确。一旦我修复了这个问题,它就会抛出我在此处引用的这个错误。现在,即使我删除 aws-exports 文件,只要将 Amplify 导入 App.js 文件,它就会抛出此错误。

在此处输入图像描述

在此处输入图像描述

-- 更新

我已经找到错误发生的位置。我的部分代码已执行,但在两个内存软件之间同步时,reactnative.js 文件中发生了错误。

我尝试通过复制 package.js 文件,然后将 Amplify 导入 App.js 文件,在新的 React 应用程序中重现此错误,但不会引发此错误。

以下是错误发生位置的屏幕截图。我仍在尝试找出此错误在我的代码中从何处开始。

在此处输入图像描述

2个回答

根据 Expo,您必须遵循以下步骤

最好导入 Amplify

import Amplify from '@aws-amplify/core'

您只需遵循这些步骤,它就会看到配置问题结果数据未出现,这就是它给出空值并崩溃的原因。

按照以下步骤操作将解决您的问题

https://blog.expo.dev/how-to-build-cloud-powered-mobile-apps-with-expo-aws-amplify-2fddc898f9a2
Tanzeel Ur Rehman
2022-07-01

通过更改 react app.json 文件中的 slug 属性,问题似乎已得到解决。我将 slug 从驼峰式改为全小写。

此后,错误似乎永久消失了。我能够在小型示例应用中复制该错误。我不明白为什么这会导致这些错误。

Nick Res
2022-07-01