Javascript React Native:如何导出具有返回值的方法?
在React Native中导出返回值为的方法的最佳方式是什么 我知道有Javascript React Native:如何导出具有返回值的方法?,javascript,objective-c,reactjs,react-native,Javascript,Objective C,Reactjs,React Native,在React Native中导出返回值为的方法的最佳方式是什么 我知道有RCT\u EXPORT\u方法,但这只适用于(void)方法,因此不返回任何内容。最好我不需要导出整个类,只需要导出几个方法 另一个选项是回调,但我希望尽可能避免回调,因为在我的用例中,回调会使代码过于膨胀。还有其他我可能错过的选择吗?似乎还没有办法。这应该是要支持的功能。尝试使用返回值 您现在还可以使用承诺,这在您的JS中看起来会更好一些 目标C: RCT_REMAP_METHOD(getThing, resolver:
RCT\u EXPORT\u方法
,但这只适用于(void)
方法,因此不返回任何内容。最好我不需要导出整个类,只需要导出几个方法
另一个选项是回调,但我希望尽可能避免回调,因为在我的用例中,回调会使代码过于膨胀。还有其他我可能错过的选择吗?似乎还没有办法。这应该是要支持的功能。尝试使用返回值
您现在还可以使用承诺,这在您的JS中看起来会更好一些 目标C:
RCT_REMAP_METHOD(getThing, resolver: (RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject)
{
if( condition ) {
NSString *thingToReturn = @"ALL OK";
resolve(thingToReturn);
} else {
reject([NSError errorWithDomain:@"com.companyname.app" code:0 userInfo:@{ @"text": @"something happend" }]);
}
}
然后在JS中:
async onPress() {
try {
const status = await CustomModule.getThing();
// do something with status
} catch(e) {
console.error(e);
}
}
我想知道是怎么做到的。通过使用回调,这很好,但除此之外,还有其他选择。我们可以在RCT_EXPORT_方法中使用这些解析和拒绝吗???我如何在//中使用状态当我试图在日志中打印它时,它会显示为[Object Object],您可以解释一下如何打印字符串的值吗?@chrishale您如何调用并向从目标C获取方法提供数据?
async onPress() {
try {
const status = await CustomModule.getThing();
// do something with status
} catch(e) {
console.error(e);
}
}