朋友们好,我想让我的插件在react native中,我想从我的react native js文件调用我的ios native module函数,下面是我的代码
ios库代码如下
@implementation RNMyLib
- (dispatch_queue_t)methodQueue{
return dispatch_get_main_queue();
}
RCT_EXPORT_MODULE()
RCT_EXPORT_METHOD(findEvents:(RCTResponseSenderBlock)callback)
{
NSString * strName = @"findEvents";
callback(strName);
}
JS文件代码如下
import { NativeModules } from 'react-native';
var MyLibManager = NativeModules.RNMyLib;
MyLibManager.findEvents((strName) => {
console.log("GET FUN CODE >>>>> "+ strName);
});
我只想从我的js文件调用简单的函数到ios本机库类,但当我运行上面的代码时,我得到了像TypeError这样的错误:未定义不是一个对象(评估“MyLibManager.find事件”)
知道我该怎么解决这个问题吗?你的所有建议都适用
因此,在本机代码中,实际上必须将NSArray传递回回调。有点像这样。
RCT_EXPORT_METHOD(findEvents:(RCTResponseSenderBlock)callback)
{
NSArray *events = ...
callback(@[[NSNull null], events]);
}
NSArray
中的第一个元素是您传递错误的机会。在您的情况下,它总是会解析,因此只需将其保持为[NSNull null]
。示例中的第二个参数而不是事件
将是您的strName
。
从JS方面来看,回调实际上是一个传统的节点
回调,它将错误作为第一个参数,并在第二个参数中解析实际项目。所以相反,
MyLibManager.findEvents((_, strName) => {
console.log("GET FUN CODE >>>>> "+ strName);
})
如果您更喜欢promise模式,可以使用以下选项:
RCT_REMAP_METHOD(findEvents,
findEventsWithResolver:(RCTPromiseResolveBlock)resolve
_:(RCTPromiseRejectBlock)reject) // I like to leave this as _ if it never fails
{
NSString *strName = @"findEvents";
resolve(strName);
}
来自JS。
const strName = await MyLibManager.findEvents;
我想从本机模块调用react本机函数。 我已经为我的react原生应用程序创建了一个条形码扫描仪插件,条形码扫描仪SDK在原生IOS中可用 现在我的问题是,一旦条形码扫描仪扫描数据并发送到本机IOS,我如何在我的反应本机应用程序中获取这些扫描数据?(我在IOS本机中获得了扫描数据) 我想在本机模块扫描数据并将这些数据发送到react-本机时调用react-本机应用程序函数 请给出例子或适当的文件,
我想启动一个新的React原生项目,包括SQLite Storagee。 我以前已经做过了,所以我知道它应该能用,但今天不行。。。 因此,我启动了一个新项目,在该项目中,我按照本教程的步骤安装了react原生sqlite存储(https://www.npmjs.com/package/react-native-sqlite-storage),android部分。 一切都很好,直到我运行我的项目反应
您好,我遵循了在windows上设置React本机项目的官方文档。我在location中添加了ANDROID_HOME变量作为系统变量 在第二步中,我应该在 “C:\Android\tools\bin\platform tools” 但是Android中没有tools文件夹,我发现SDK下的平台工具就在下面 "C:\用户\AKSHAY\AppData\本地\Android\SDK\平台工具" 现在
目标:开发一个跨平台设计系统,将其导入任何平台(React、React Native、Android、iOS)。 我们得到的工作:在React Native中开发的一个项目,其中开发了一些核心UI组件,以确保视觉效果在所有其他项目中保持一致。该项目作为依赖项导入到另一个成功使用这些组件的React Native应用程序中。到目前为止还不错。 我们卡住的地方:我们想在原生项目(Android和iOS
在这个构建中使用了不推荐的Gradle特性,使其与Gradle7.0不兼容。使用“--Warning-Mode All”显示各个弃用警告。请参见https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings440可操作任务:22个已执行,418最新注意:c:\users\stef
你好,我正面临一个问题与世博反应本地。每当我试图启动iOS模拟器。我得到这个错误: 世博会结果截图 我的NPM版本是6.7。0本机cli:2.0。1:0.57。1世博会版本2.11。9 此外,我还确保我在Xcode上的命令行工具是完全由Xcode命令行工具设置的 最后,我还尝试运行命令 什么都不管用。。