React Native:模块RCTLog不是注册的可调用模块(调用logIfNoNativeHook)

Posted

技术标签:

【中文标题】React Native:模块RCTLog不是注册的可调用模块(调用logIfNoNativeHook)【英文标题】:React Native: Module RCTLog is not a registered callable module (calling logIfNoNativeHook) 【发布时间】:2020-02-03 00:13:26 【问题描述】:

我做了一个 React Native 包并在 npm 上发布。

问题是当我在 React Native 应用程序中将代码作为普通组件运行时,它可以正常工作,没有错误。

当我在 Npm 上发布包并将其作为依赖项下载到我的项目时,应用程序会抛出红屏错误。

错误是:

Invariant Violation: Module RCTLog is not a registered callable module (calling logIfNoNativeHook)

__callFunction
    index.bundle?platform=ios&dev=true&minify=false:109413:18
<unknown>
    index.bundle?platform=ios&dev=true&minify=false:109128:31
__guard
    index.bundle?platform=ios&dev=true&minify=false:109369:15
callFunctionReturnFlushedQueue
    index.bundle?platform=ios&dev=true&minify=false:109127:21
callFunctionReturnFlushedQueue
    [native code]:0

注意:Github 上提供的所有代码 如果您可以安装该软件包,请在Npm 上找到该软件包,如果您遇到同样的错误,请给我反馈,这也可能会有所帮助

【问题讨论】:

【参考方案1】:

我使用你的包创建了 Expo 小吃,没有收到任何问题,在 IOS 和 android 上测试。 世博小吃:https://snack.expo.io/@djalik/progressoverlay

【讨论】:

【参考方案2】:

原因很可能是this.

我会尝试执行上面的建议,基本上将这个var RCTLog = require('RCTLog'); 添加到 index.ios.js 文件中。

【讨论】:

那个问题是从 2016 年开始的,我今天在 RN 版本 60.5 中得到它。其他地方肯定有新的修复吗?【参考方案3】:

通常由损坏的缓存引起。

    停止 Metro 捆绑器 rm -rf $TMPDIR/metro-cache/ 再次启动捆绑程序 (react-native start)

【讨论】:

以上是关于React Native:模块RCTLog不是注册的可调用模块(调用logIfNoNativeHook)的主要内容,如果未能解决你的问题,请参考以下文章

React Native - Xcode 12.1 & iOS 14.0.1 Invariant Violation:Module AppRegistry 不是注册的可调用模块(调用 runA

React-Native 不支持的布局动画

在 React-Native 中使用自定义字体

注册通知操作不是 React Native 中的函数

错误:传感器的本机模块不可用。 react-native 链接是不是运行成功?

React Native 接入微博微信QQ 登录功能