反应本机+;Android本机模块:HMRClient不是已注册的可调用模块
我正在为ReactNative开发一个本机模块。现在我正在玩弄本机代码部分。 我已经用createreact本地模块脚本创建了模块。我系统地得到以下错误:反应本机+;Android本机模块:HMRClient不是已注册的可调用模块,android,react-native,Android,React Native,我正在为ReactNative开发一个本机模块。现在我正在玩弄本机代码部分。 我已经用createreact本地模块脚本创建了模块。我系统地得到以下错误: Invariant Violation: Module HMRClient is not a registered callable module (calling setup) 我已将问题归结为当我在index.js中为我的模块引用NativeModule时: import { NativeModules } from 'react-na
Invariant Violation: Module HMRClient is not a registered callable module (calling setup)
我已将问题归结为当我在index.js中为我的模块引用NativeModule时:
import { NativeModules } from 'react-native';
//const <...my module name...> = NativeModules.<...my module name...>; // <---- NOT WORKING
class <...some js class...> {
constructor() {
const <...my module name...> = NativeModules.<...my module name...>; // <-- WORKING
<...my module name...>.debugMessage("Salve mondo advertising");
}
}
我也有类似的问题
据我所知,您的模块没有在npm上发布,也没有从node\u模块导入
当您将模块的index.js
文件放在react本机项目之外时,可能会发生这种情况,它使用react本机项目。它会导致react native的双重导入。因此,registerCallableModule('HMRClient')
调用两次。所以它导致了这个错误
尝试将本机模块的index.js
文件替换为react本机项目。它对我有效我也有类似的问题
据我所知,您的模块没有在npm上发布,也没有从node\u模块导入
当您将模块的index.js
文件放在react本机项目之外时,可能会发生这种情况,它使用react本机项目。它会导致react native的双重导入。因此,registerCallableModule('HMRClient')
调用两次。所以它导致了这个错误
尝试将本机模块的index.js
文件替换为react本机项目。它对我有用
System:
OS: Linux 4.15 Ubuntu 18.04.4 LTS (Bionic Beaver)
CPU: (8) x64 Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz
Memory: 947.73 MB / 15.60 GB
Shell: 4.4.20 - /bin/bash
Binaries:
Node: 11.10.1 - /usr/local/bin/node
Yarn: 1.22.4 - /usr/local/bin/yarn
npm: 6.8.0 - /usr/local/bin/npm
SDKs:
Android SDK:
API Levels: 25, 28
Build Tools: 25.0.2, 28.0.3, 29.0.0, 29.0.3
System Images: android-19 | Intel x86 Atom, android-28 | Intel x86 Atom, android-28 | Intel x86 Atom_64, android-28 | Google Play Intel x86 Atom
npmPackages:
react: ^16.9.0 => 16.13.1
react-native: ^0.61.5 => 0.61.5
npmGlobalPackages:
react-native-cli: 2.0.1