My Reactアプリではユーザーがプロフィール画像をアップロードできます。これは、Amazon S3バケットに画像をアップロードし、画像がアップロードされた日時と共に、データベースへの画像のパスを保存することによって行われます。イメージのファイル名はユーザーのIDに設定されます。イメージファイルをリロードするように強制しますか?
ユーザーが新しい画像をアップロードするときに問題が発生しました。画像パスが同じなので、Reactは何も変わっていないことを知らないので、ページをリフレッシュして変更を確認する必要があります。
私は日付フィールドを持っているので、新しい画像がいつアップロードされたかを知るためにcomponentWillReceivePropsを使用できます。次のconsole.logは正しい時刻に起動します:
componentWillReceiveProps(nextProps) {
if (this.state.picDate.getTime() !== nextProps.user.pic.date.getTime()) {
console.log('image date has changed');
// this.forceUpdate();
}
}
これを使用してイメージを再レンダリングできますか?私はthis.forceUpdate()
を試しましたが、動作しません。