поэтому я пытаюсь отобразить изображение с динамическим uri/path (при инициализации он отображает изображение-заполнитель, а затем изменяется) следующим образом:
<Image source={this.state.pickedImage == null? require('./Placeholder.jpeg'):{uri: this.state.pickedImage}}/>
где this.state.pickedImage
инициализируется как null
, а затем изменяется с помощью launchCamera
и launchImageLibrary
react-native-image-picker
, как показано ниже:
cameraHandler = () => {
ImagePicker.launchCamera({title: "Pick an Image", maxWidth: 800, maxHeight: 600}, res => {
if (res.didCancel) {
console.log("User cancelled!");
} else if (res.error) {
console.log("Error", res.error);
} else {
this.setState({
pickedImage: res.uri,
imageSize: res.fileSize,
});
}
});
}};
(Должен упомянуть, что я реализовал launchImageLibrary
в точно таким же образом, так что я не видел причин размещать его здесь.)
и хотя изображение-заполнитель отображается просто отлично, всякий раз, когда я загружаю новое изображение, <Image/>
, похоже, вообще не отображается, и у меня остается только фон.
Что я пробовал:
Я пытался сделать что-то вроде инициализации this.state.pickedImage
в моем state
, например:
pickedImage: require('./Placeholder.jpeg').uri
а затем добавьте тег изображения, например:
<Image source={{uri: this.state.pickedImage}} />
но, увы, это просто мешает мне отображать какие-либо изображения.
Я подумал о динамической привязке путей к require()
, например здесь (а также во многих местах на этом сайте), но, насколько я понимаю, вам нужно заранее знать, какие потенциальные изображения вы хотите получить, и если я использую камеру, я не могу этого сделать. (Кроме того, я не могу заранее настроить список и экспортировать каждое изображение на телефоне пользователя, так что мои руки там связаны.) (Очевидно, нет способа на самом деле динамически привязываться к require () так, как я ищу, потому что менеджер пакетов так не работает а>)
Могу ли я каким-либо образом отобразить эти uri
? Любая помощь приветствуется!
(Кстати, я использую реактивную версию 0.57.4)