2016-07-23 2 views
2

반응 네이티브 코드를 0.28에서 0.30으로 업데이트 한 후 이벤트를 자바 스크립트로 다시 보내고 이전 방법을 사용하지 않는 것이 좋습니다 (하위 클래스 인 RCTEventEmitter).반응 네이티브에서 RCTEventEmitter를 사용하여 이벤트 콜백을 수신하는 방법

- (void)startObserving{} 

- (void)stopObserving{} 

- (NSArray<NSString *> *)supportedEvents{ 

    return @[@"someInterestingEvent"]; 
} 

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

문제는 단순히 이벤트를 등록하는 것이 아니라 콜백을 수신하는 방법입니다. RCTEventEmitter에 메소드 RCT_EXPORT_METHOD(addListener:(NSString *)eventName)이 노출되어 있음을 알았지 만 하나의 인수 (이벤트 이름) 만 수신합니다. 결과가 없습니다 등록 청취자와 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)) 
관련 문제