diff --git a/Libraries/Components/Picker/PickerAndroid.android.js b/Libraries/Components/Picker/PickerAndroid.android.js index 4fddefb8014..6788aefd06f 100644 --- a/Libraries/Components/Picker/PickerAndroid.android.js +++ b/Libraries/Components/Picker/PickerAndroid.android.js @@ -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 = {