2016-07-23 10 views
2

反応ネイティブコードを0.28から0.30に更新した後、イベントをJavascriptに戻すための推奨方法はサブクラス化で、古い方法は推奨されていません。反応ネイティブでRCTEventEmitterを使用してイベントコールバックを受信する方法

- (void)startObserving{} 

- (void)stopObserving{} 

- (NSArray<NSString *> *)supportedEvents{ 

    return @[@"someInterestingEvent"]; 
} 

-(void)interestingEventHappen{ 
    [self sendEventWithName:@"someInterestingEvent" body:nil]; 
} 

問題は、イベントを登録するだけでなく、コールバックを受け取る方法です。 RCTEventEmitterにはメソッドRCT_EXPORT_METHOD(addListener:(NSString *)eventName)が公開されていますが、1つの引数(イベント名)しか受け取りません。何もありませんし、登録されていないリスナーにsomeInterestingEventを送る黄色のボックスのcomplainesと

NativeAppEventEmitter.addListener('someInterestingEvent',()=>{});

:私は、ドキュメントを試してみました。

私は何かを見逃しましたか?

答えて

1

questionはすでにgithubで議論されている。

要するに、NativeModulesモジュールを使用してこのネイティブモジュールを取得し、イベントを受信できるようにNativeEventEmitterクラスにラップしてください。

import { NativeModules, NativeEventEmitter } from 'react-native' 

const myModuleEvt = new NativeEventEmitter(NativeModules.MyModule) 
myModuleEvt.addListener('sayHello', (data) => console.log(data)) 
関連する問題