Support RCTModernEventEmitter+RCTEventEmitter in PickerItemSelectEvent Event class
Summary: Support RCTModernEventEmitter+RCTEventEmitter in an Event class(es). This improves perf in Fabric. Migrate any constructor callsites to the new constructor and deprecate the previous one. Changelog: [Internal] Reviewed By: PeteTheHeat, mdvacca Differential Revision: D26056813 fbshipit-source-id: e3b0132fac6335e83ff5b1992424edcb98703803
This commit is contained in:
Родитель
f6af7b2a58
Коммит
a8d7c2cd62
|
@ -91,7 +91,9 @@ public abstract class ReactPickerManager extends SimpleViewManager<ReactPicker>
|
|||
|
||||
@Override
|
||||
public void onItemSelected(int position) {
|
||||
mEventDispatcher.dispatchEvent(new PickerItemSelectEvent(mReactPicker.getId(), position));
|
||||
mEventDispatcher.dispatchEvent(
|
||||
new PickerItemSelectEvent(
|
||||
UIManagerHelper.getSurfaceId(mReactPicker), mReactPicker.getId(), position));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,18 +7,23 @@
|
|||
|
||||
package com.facebook.react.views.picker.events;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.uimanager.events.Event;
|
||||
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
||||
|
||||
public class PickerItemSelectEvent extends Event<PickerItemSelectEvent> {
|
||||
public static final String EVENT_NAME = "topSelect";
|
||||
|
||||
private final int mPosition;
|
||||
|
||||
public PickerItemSelectEvent(int id, int position) {
|
||||
super(id);
|
||||
@Deprecated
|
||||
public PickerItemSelectEvent(int reactTag, int position) {
|
||||
this(-1, reactTag, position);
|
||||
}
|
||||
|
||||
public PickerItemSelectEvent(int surfaceId, int reactTag, int position) {
|
||||
super(surfaceId, reactTag);
|
||||
mPosition = position;
|
||||
}
|
||||
|
||||
|
@ -27,12 +32,9 @@ public class PickerItemSelectEvent extends Event<PickerItemSelectEvent> {
|
|||
return EVENT_NAME;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public void dispatch(RCTEventEmitter rctEventEmitter) {
|
||||
rctEventEmitter.receiveEvent(getViewTag(), getEventName(), serializeEventData());
|
||||
}
|
||||
|
||||
private WritableMap serializeEventData() {
|
||||
protected WritableMap getEventData() {
|
||||
WritableMap eventData = Arguments.createMap();
|
||||
eventData.putInt("position", mPosition);
|
||||
return eventData;
|
||||
|
|
Загрузка…
Ссылка в новой задаче