Ho un componente che rappresenta un avatar utente che carica un'immagine dalla mia API. Voglio che mostri un avatar predefinito (non un'altra immagine) mentre l'avatar sta caricando.Mostra elemento predefinito durante il caricamento Immagine
constructor() {
super();
this.state = {
loaded: false,
};
}
render() {
if (!this.props.uri || !this.state.loaded) {
return (
<DefaultAvatar />
);
}
return <Image onLoad={this.onLoad.bind(this)} uri={this.props.uri} />;
}
onLoad() {
this.setState({loaded: true});
}
Il problema che ho è che con questo codice attuale, non sarà mai reso la Image
, così lo Stato non cambierà mai. Non riesco a trovare una soluzione che soddisfi i principi React e le mie esigenze (nessun componente fantasma per caricare l'immagine prima di visualizzarla).
L'immagine viene caricata tramite oggetti di scena? –
Impossibile chiedere al tag immagine di caricare se non è nel DOM. Puoi impostarlo su 'display: none;' fino a quando caricato? –