#javascript #ios #react-native #expo
Вопрос:
новичок здесь, чтобы реагировать на родной язык. Я использую точный код, который указан в руководстве expo ImagePicker (https://docs.expo.dev/versions/latest/sdk/imagepicker/) и я не могу заставить пользовательский интерфейс выбора изображений в iOS быть на высоте.
const _pickImage = async () => {
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.All,
allowsEditing: true,
aspect: [4, 3],
quality: 1,
});
Мой модальный:
<Modal>
isVisible={this.state.isModal5Visible}
onBackdropPress={() => this.setState({ isModal5Visible: false })}
<View style={{flex:1}}>
<Button primary style={{flexDirection: 'row', alignItems: 'center', justifyContent:'flex-start'}}
onPress={this._pickImage}
>
<Icon name='ios-book' />
<Text style={ Platform.OS === 'ios' ? {fontSize:16} : {fontSize:12,paddingLeft:4} }>Gallery</Text>
</Button>
</View>
</Modal>
Что здесь происходит, так это то, что мой взгляд остается на вершине пользовательского интерфейса выбора изображений только на iOS, а не на Android:
Когда я добавляю событие закрытия, оно закрывает как вид, так и пользовательский интерфейс средства выбора изображений. Как я могу закрыть только этот вид?
Комментарии:
1. Попробуйте использовать оба условия в одной и той же кнопке.
onPress={this._pickImage(); this.state.isModal5Visible()}
2. isModal5Visible не является функцией. Это собственность. Способ, которым я закрываю этот модальный в других кнопках, заключается в том, что я использую это.setState({ isModal5Visible: false }) И это работает. Но когда я использую его для этой кнопки, он закрывает оба окна.
3. но если вы не закроете этот режим, то режим выбора изображений всегда будет отображаться в фоновом режиме. Сначала вы должны закрыть его и в то же время открыть модальное средство выбора изображений.