javascript - 不变违规:组件`RNCSafeAreaProvider`的视图配置getter回调必须是一个函数(收到`undefined`)
问题描述
最近,我通过运行来更新我的 React Native 应用程序的依赖项npm update
。这是一个很大的错误,破坏了一切:)所以我检查了以前的package-lock.json
,删除node_modules
并npm i
再次运行。
据我所知,这应该让一切恢复原状,但我却收到了这个错误(在许多其他错误中):
ERROR Invariant Violation: View config getter callback for component `RNCSafeAreaProvider` must be a function (received `undefined`).
This error is located at:
in RNCSafeAreaProvider (at SafeAreaContext.tsx:74)
in SafeAreaProvider <- Imported from 'react-native-safe-area-context'
in MyApp <- My code
我知道当您尝试渲染无效组件时通常会发生此错误,即。因为你从错误的地方进口。
但是,这就是使我的问题与那些询问类似错误的问题不重复的原因,这不是来自我的代码。从调用栈可以看到,它成功解析并开始渲染SafeAreaProvider
,这不是我的组件,它是直接从react-native-safe-area-context
. 然后,它在那里尝试渲染该包内部的组件,但RNCSafeAreaProvider
失败了。
我相信这个视图的代码没有错——在我弄乱npm
. 这个问题在 iOS 和 Android 上也可以重现。
有人经历过类似的事情吗?
解决方案
我最终将其归结为一个错误。该项目是用 npm 工作区组织的,我是npm i
从其中一个子项目中完成的,而不仅仅是从项目的根目录中完成。
不知道为什么它会导致如此神秘的错误,但希望这可以帮助其他人诊断出同样的问题
推荐阅读
- bash - bash 大于比较失败
- automationanywhere - Automation Anywhere - 计划任务无法在运行器上运行
- php - PHP 运行 Python 脚本但结果不出现在前端网页
- python - Python Web Scraping - 动态加载页面
- regex - 接受大写字母的正则表达式应该接受数字
- c++ - 访问条件类成员的方法,仅在被调用时才编译
- python - 多元时间序列,检测异常,Keras
- visual-studio-2015 - 构建 clang 时未生成 LLVM.sln 文件
- python - Python3 + matplotlib 上的 Alpine 错误:ImportError: cannot import name 'get_backend'
- javascript - javascript / 如何在 2 个类的第 n 个子项中设置相同的值