react-native文档未更新,照着文档实现还是坑了不少,记录下基本步骤。
1,继承实现com.facebook.react.uimanager.events.Event类MyEvent
getViewTag:接受事件view,传view.getId()
getEventName:事件名称
dispatch:产生方法
@Override
public void dispatch(RCTEventEmitter rctEventEmitter) {
rctEventEmitter.receiveEvent(getViewTag(), getEventName(), serializeEventData());
}
2,在ViewManager必须实现方法getExportedCustomDirectEventTypeConstants
public @Nullable
Map getExportedCustomDirectEventTypeConstants() {
return MapBuilder.builder()
.put("onUpdateView", MapBuilder.of("registrationName", "onUpdateView"))
.build();
}
3,触发
reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher().dispatchEvent(new MyEvent(getId(),SystemClock.nanoTime(),rowId));