Use commands instead of setNativeProps for PickerAndroid

Summary:
Fabric doesn't support setNativeProps, so we are using view commands instead.

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D18044169

fbshipit-source-id: d5f199b930244d02f174ea8a7ef732e9a8ef2476
This commit is contained in:
Oleksandr Melnykov authored and Facebook Github Bot committed 2020-01-14 03:57:28 -08:00
1 parent 1e6e37a3a8
commit e848b0036d
1 file changed
+18 -5
@@ -10,8 +10,12 @@
'use strict';
import AndroidDropdownPickerNativeComponent from './AndroidDropdownPickerNativeComponent';
import AndroidDialogPickerNativeComponent from './AndroidDialogPickerNativeComponent';
import AndroidDropdownPickerNativeComponent, {
Commands as AndroidDropdownPickerCommands,
} from './AndroidDropdownPickerNativeComponent';
import AndroidDialogPickerNativeComponent, {
Commands as AndroidDialogPickerCommands,
} from './AndroidDialogPickerNativeComponent';
import * as React from 'react';
import StyleSheet from '../../StyleSheet/StyleSheet';
import processColor from '../../StyleSheet/processColor';
@@ -83,13 +87,22 @@ function PickerAndroid(props: Props): React.Node {
onValueChange(null, position);
}
}
const {current} = pickerRef;
if (current != null && position !== selected) {
current.setNativeProps({selected});
const Commands =
props.mode === 'dropdown'
? AndroidDropdownPickerCommands
: AndroidDialogPickerCommands;
Commands.setNativeSelectedPosition(current, selected);
}
},
[props.children, props.onValueChange, props.selectedValue, selected],
[
props.children,
props.onValueChange,
props.selectedValue,
props.mode,
selected,
],
);
const rootProps = {