2015-04-21 14 views
13

Was ist der beste Weg, um eine Methode mit einem Rückgabewert in React Native zu exportieren?React Native: Wie exportiert man eine Methode mit einem Rückgabewert?

Ich weiß, es gibt RCT_EXPORT_METHOD, aber das funktioniert nur für Methoden, die (void) sind und deshalb nichts zurückgeben. Vorzugsweise muss ich nicht die ganze Klasse exportieren, nur ein paar Methoden.

Die andere Option wäre, einen Rückruf zu haben, aber ich möchte das vermeiden, wenn es möglich ist, da es den Code in meinem Anwendungsfall zu sehr aufbläht. Gibt es andere Möglichkeiten, die ich vielleicht verpasst habe?

+0

Ich möchte wissen, wie es gemacht wurde. Durch die Verwendung von Rückrufen war es in Ordnung, aber ansonsten gibt es keine Alternative. Und können wir diese in RCT_EXPORT_METHOD ??? – Ramakrishna

Antwort

1

Scheint noch keinen Weg. Das sollte eine Unterstützung sein.

2

Try Rückgabewerte mit Callbacks

RCT_EXPORT_METHOD(findEvents:(RCTResponseSenderBlock)callback) 
{ 
    NSArray *events = ... 
    callback(@[[NSNull null], events]); 
} 
8

können Sie auch jetzt verspricht, die ein wenig schöner in Ihrem JS aussehen neigen.

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" }]); 
    } 
} 

dann in JS:

async onPress() { 
    try { 
    const status = await CustomModule.getThing(); 
    // do something with status 
    } catch(e) { 
    console.error(e); 
    } 
} 
+0

Wie verwende ich Status in // mache etwas mit Status Wenn ich versuche, es im Protokoll zu drucken, zeigt es sich wie [Objekt Objekt] Können Sie bitte erklären, wie Wert der Zeichenfolge zu drucken? – Manisha

+0

@chrishale Wie kann man getThing-Methode von Objective C aufrufen und geben? – Nirmalsinh

Verwandte Themen