首页 > 解决方案 > 不变违规:组件`RNCSafeAreaProvider`的视图配置getter回调必须是一个函数(收到`undefined`)

问题描述

最近,我通过运行来更新我的 React Native 应用程序的依赖项npm update。这是一个很大的错误,破坏了一切:)所以我检查了以前的package-lock.json,删除node_modulesnpm 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 上也可以重现。

有人经历过类似的事情吗?

标签: javascriptreact-nativenpmdependencies

解决方案


我最终将其归结为一个错误。该项目是用 npm 工作区组织的,我是npm i从其中一个子项目中完成的,而不仅仅是从项目的根目录中完成。

不知道为什么它会导致如此神秘的错误,但希望这可以帮助其他人诊断出同样的问题


推荐阅读