React native 如何使用平台模块确保在React Native中使用正确的选择器版本

React native 如何使用平台模块确保在React Native中使用正确的选择器版本,react-native,react-native-android,react-native-ios,behavior,picker,React Native,React Native Android,React Native Ios,Behavior,Picker,我已经为android编写了大部分代码。其中一个组件包含一个选择器项,允许用户在两个不同的国家/地区之间进行选择。安卓版本的这款手机没有任何问题。然而,当我在IOS上试用时,它是无法使用的。就在那时我意识到PickerIOS是可用的 我想做的是,使用平台来确定正在使用的操作系统,然后使用适当的选择器。比如说 <KeyboardAvoidingView style={styles.pickerView} behavior={Platform

我已经为android编写了大部分代码。其中一个组件包含一个选择器项,允许用户在两个不同的国家/地区之间进行选择。安卓版本的这款手机没有任何问题。然而,当我在IOS上试用时,它是无法使用的。就在那时我意识到PickerIOS是可用的

我想做的是,使用平台来确定正在使用的操作系统,然后使用适当的选择器。比如说

  <KeyboardAvoidingView style={styles.pickerView}
                        behavior={Platform.OS === 'ios' ? PickerIos: Picker}
                    >
                        <Picker>
                            <Picker.Item label='france' value='france'/>
                            <Picker.Item label='england' value='england'/>
                        </Picker>

                        <PickerIOS>
                            <PickerIOS.Item label='france' value='france'/>
                            <PickerIOS.Item label='england' value='england'/>
                        </PickerIOS>

                    </KeyboardAvoidingView>

我特意使用KeyboardAvoidingView,因为它是我知道的少数几个使用“行为”属性的组件之一。然而,我很确定我不能让它保持目前的状态。如何确保使用了正确的选择器


使用函数根据当前操作系统呈现选择器是否更好

我建议使用函数。例如,您可以执行以下操作:

<KeyboardAvoidingView style={styles.pickerView}
{this.choosePicker()}
</KeyboardAvoidingView>


choosePicker() {
    if (Platform.OS === 'ios') { 
        return (
            <PickerIOS>
                <PickerIOS.Item label='france' value='france'/>
                <PickerIOS.Item label='england' value='england'/>
            </PickerIOS>
        );
    } 
    // if Platform is not ios return other Picker
    return (
        <Picker>
            <Picker.Item label='france' value='france'/>
            <Picker.Item label='england' value='england'/>
        </Picker>
    );
}

我建议使用函数。例如,您可以执行以下操作:

<KeyboardAvoidingView style={styles.pickerView}
{this.choosePicker()}
</KeyboardAvoidingView>


choosePicker() {
    if (Platform.OS === 'ios') { 
        return (
            <PickerIOS>
                <PickerIOS.Item label='france' value='france'/>
                <PickerIOS.Item label='england' value='england'/>
            </PickerIOS>
        );
    } 
    // if Platform is not ios return other Picker
    return (
        <Picker>
            <Picker.Item label='france' value='france'/>
            <Picker.Item label='england' value='england'/>
        </Picker>
    );
}

您可以像这样使用特定于平台的选择器:---

const MyPicker=Platform.select({
ios:PickerIOS,
安卓:选择器
});
render(){
返回(
);
}

您可以像这样使用特定于平台的选择器:---

const MyPicker=Platform.select({
ios:PickerIOS,
安卓:选择器
});
render(){
返回(
);
}

感谢您的回复。很抱歉延迟回复。@VK1不客气!如果我的回答对你有帮助,请记为正确。谢谢谢谢你的回复。很抱歉延迟回复。@VK1不客气!如果我的回答对你有帮助,请记为正确。谢谢