React native 如何使用平台模块确保在React Native中使用正确的选择器版本
我已经为android编写了大部分代码。其中一个组件包含一个选择器项,允许用户在两个不同的国家/地区之间进行选择。安卓版本的这款手机没有任何问题。然而,当我在IOS上试用时,它是无法使用的。就在那时我意识到PickerIOS是可用的 我想做的是,使用平台来确定正在使用的操作系统,然后使用适当的选择器。比如说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
<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不客气!如果我的回答对你有帮助,请记为正确。谢谢