Не удается импортировать изображения в Reactjs с помощью require()

#javascript #reactjs #webpack

#javascript #reactjs #webpack

Вопрос:

Вот в чем дело, когда я открыл свой проект react, все изображения перестали появляться, это произошло внезапно, поскольку он работал пару часов назад. Похоже, это проблема с тем, как они импортируются, метод, который я всегда использовал src={require(./Picture)} , я также пробовал, const logo = require('logo') src={logo} и import logo from './logo.png' единственный работающий — последний упомянутый.

При этом каждый Google указывал, что проблема связана с зависимостью под названием webpack, которую я пытался удалить и переустановить, также установив более старую версию, но ничего не получалось.

Есть идеи о том, что могло вызвать это?

Комментарии:

1. Используете ли вы create-react-app?

Ответ №1:

Если вы используете create-react-app и require для импорта своих изображений, require возвращает модуль ES вместо строки. Это потому file-loader esModule , что опция in включена по умолчанию.

Просто убедитесь, что вы импортируете свои изображения одним из следующих способов:

 const image = require('../path/to/image.jpg').default;
// OR
import image from '../path/to/image.jpg';
 

Итак

  • src={require(./Picture)} должно быть src={require(./Picture).default}
  • const logo = require('logo') должно быть const logo = require('logo').default
  • import logo from './logo.png' должно просто работать

Комментарии:

1. Это сработало отлично, большое спасибо. Почему .default вдруг возникла необходимость?, пару часов назад он работал абсолютно нормально без него

2. Если вы не обновили свои зависимости, это действительно странно. Не уверен, что изменилось.