, поэтому я пытаюсь отобразить изображение с динамическим uri / path (при инициализации оно отображает изображение заполнителя, а затем изменяется) следующим образом:
<Image source={this.state.pickedImage == null? require('./Placeholder.jpeg'):{uri: this.state.pickedImage}}/>
, где this.state.pickedImage
инициализируется как null
, а затем изменяется с помощью react-native-image-picker
s launchCamera
и launchImageLibrary
, как показано ниже:
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()
как здесь (а также ко многим местам на этом сайте), но, насколько я понимаю, вам нужно знать, какие потенциальные изображения вы могли бы хочу быть заранее, и если я использую камеру, я не могу этого сделать. (Кроме того, я не могу заранее настроить список и экспортировать каждое изображение на телефоне пользователя, поэтому мои руки связаны там.) (Очевидно, что действительно не существует способа динамического связывания с требованием ( ) как я ищу, , потому что менеджер пакетов не работает таким образом )
Можно ли как-нибудь отобразить эти uri
с? Любая помощь приветствуется!
(я использую реагирующую версию 0.57.4)