Я создаю проект, в котором мне нужно, чтобы пользователь выбрал изображение из своей фотогалереи.Однако я столкнулся с проблемой, когда пользователь отменяет ImagePicker, находясь в своей галерее, появляется индикатор активности, и пользователь больше не может выбрать изображение.Как я могу сделать так, чтобы при нажатии кнопки отмены кнопка «Загрузить изображение» снова отображалась?
Вот мой код:
{!this.state.loading ? (
<Button
full
style={{
fontFamily: "nunito",
backgroundColor: "#f3d95c"
// alignSelf: "center",
}}
onPress={() => this.imagePicker()}
>
<Text
style={{
fontFamily: "nunito"
// color: "white"
}}
>
{this.state.imageUrl === ""
? "Upload Photo"
: "Photo Selected"}
</Text>
</Button>
) : (
<ActivityIndicator size="large" color="#0000ff" />
)}
РЕДАКТИРОВАТЬ: Вот функция
imagePicker = () => {
this.setState({ loading: true });
Permissions.askAsync(Permissions.CAMERA_ROLL);
ImagePicker.launchImageLibraryAsync({
allowsEditing: false,
base64: true
}).then(async result => {
const blob = await new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.onload = function() {
resolve(xhr.response);
};
xhr.onerror = function(e) {
reject(new TypeError("Network request failed"));
};
xhr.responseType = "blob";
xhr.open("GET", result.uri, true);
xhr.send(null);
});
const ref = firebase
.storage()
.ref()
.child(uuid.v4());
const snapshot = await ref.put(blob);
blob.close();
let imageUrl = await snapshot.ref.getDownloadURL();
this.setState({ imageUrl: imageUrl, loading: false });
});
};