Meine React App ermöglicht es Benutzern, Profilbilder hochzuladen. Dazu wird das Bild in einen Amazon S3-Bucket hochgeladen und der Pfad zu dem Bild in meiner Datenbank zusammen mit dem Datum und der Uhrzeit gespeichert, zu dem das Bild hochgeladen wurde. Der Dateiname des Bildes wird auf die Benutzer-ID gesetzt.Force Reagieren, um eine Image-Datei neu zu laden?
Ich habe ein Problem, wenn ein Benutzer ein neues Bild hochlädt. Da der Bildpfad derselbe ist, weiß React nichts, was bedeutet, dass ich die Seite aktualisieren muss, um die Änderung zu sehen.
Da ich ein Datumsfeld habe, kann ich mit componentWillReceiveProps wissen, wann ein neues Bild hochgeladen wurde. Das folgende console.log wird zur richtigen Zeit ausgelöst:
componentWillReceiveProps(nextProps) {
if (this.state.picDate.getTime() !== nextProps.user.pic.date.getTime()) {
console.log('image date has changed');
// this.forceUpdate();
}
}
Kann ich das verwenden, um das Bild erneut zu rendern? Ich habe versucht this.forceUpdate()
, aber es funktioniert nicht.