Top.Mail.Ru
Ответы

Подскажите по изображениям react js +

У меня есть блок в котором в котором есть несколько инпутов и поля под картинки. по нажатию кнопки этот блок появляется и в инпуты загружается информация и бд, а так же загружаются картинки. картинки котороые можно изменить загружаются из файлов на сервере. При первой загрузке картинки грузятся правильно, но вот стоит изменить эти картинки (загружаются через инпуты) так эти картинки перестают загружаться(обновляться) вместо них загружены старые - те что появились при первой загрузке блока. Как решить эту проблему? Картинки загружаю вот этим кодом:

12
     let imagePath = process.env.PUBLIC_URL + '/images/' + ab['cn']['ID'] + '-0.jpeg';  
    setFile_0(imagePath); 
Дополнен

файлы меняются а картинки те же остаются, хотя код срабатывает

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
10мес

react имеет механизм принудительного обновления, даже если путь к файлу не изменился, благодаря атрибуту key (на ванильном js такое не работает):

useEffect(() => {
const imagePath = process.env.PUBLIC_URL + '/images/' + ab['cn']['ID'] + '-0.jpeg';
setFile_0(imagePath);
}, [/* зависимости, которые вызывают обновление изображения */]);

return (
<img src={file_0} alt="Some Image" key={file_0} />
);


Можно просто попробовать присобачить timestamp к имени:
let imagePath = process.env.PUBLIC_URL + '/images/' + ab['cn']['ID'] + '-0.jpeg' + '?t=' + new Date().getTime();
setFile_0(imagePath);