What is the best way to export a method with a return value in React Native?
I know there is RCT_EXPORT_METHOD
, but that only works for methods that are
Try return values with Callbacks
RCT_EXPORT_METHOD(findEvents:(RCTResponseSenderBlock)callback)
{
NSArray *events = ...
callback(@[[NSNull null], events]);
}
You can also now use promises, which tend to look a little nicer in your JS.
Objective 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" }]);
}
}
Then in JS:
async onPress() {
try {
const status = await CustomModule.getThing();
// do something with status
} catch(e) {
console.error(e);
}
}
Seems no way yet. That should be a feature to support.