Изображение не отображается в реакции js с использованием require.context

Я пытался найти ответ, но я ничего не получаю, чтобы решить эту проблему. Я загружаю свое изображение с помощью require.context, как вы можете видеть в коде, но оно не загружается. Раньше он отлично работал в предыдущих версиях react js. Сейчас я использую версию реакции 17.0.1. В консоли ошибок нет. Если я импортирую изображение и использую его в src, все работает нормально. Я также попытался изменить изображения с некоторыми предыдущими изображениями, использованными в предыдущих проектах (с использованием версии 16.x.x), которые там работают нормально. Я создаю приложение для реагирования, используя npx-create-react-app. Путь к изображению правильный, так как в случае неправильного пути "модуль с именем xxx не найден, возникает ошибка". Текущее поведение: Изображение не отображается, вместо него отображается значение alt. Желаемое поведение: Изображение должно отображаться вместо значения alt.

import React, { Component } from "react";
import commonStyles from "../css/common.module.css";
import loginStyles from "../css/login.module.css";
import { TextField, Button, Paper, Typography } from "@material-ui/core";

class Login extends Component {
  state = {
    userName: "",
    password: "",
    error: "",
  };
  render() {
    const images = require.context("../images", true);
    return (
      <div
        className = {`${loginStyles.root} d-flex justify-content-center align-items-center ${commonStyles.bg}`}
      >
        <Paper
          classes = {{
            root: `${commonStyles.paper} mt-2`,
          }}
          elevation = {3}
        >
          <div className = {`${loginStyles.child}`}>
            <div className = {`d-flex justify-content-center align-items-center`}>
              <img
                src = {images(`./Shahmeer.png`)}
                alt = {`Shahmeer Avenue Logo`}
                width = "100"
                height = "100"
              />
            </div>
            <Typography
              classes = {{
                root: `font-weight-bold`,
              }}
              variant = "h5"
              gutterBottom
            >
              Login
            </Typography>
            <form noValidate autoComplete = "off">
              <TextField
                classes = {{
                  root: `${commonStyles.textField}`,
                }}
                onChange = {(e) => this.handleChangeEvent(e)}
                id = {"userName"}
                label = {"User Name"}
                variant = "outlined"
                error = {this.state.error ? true : false}
                helperText = {this.state.error}
                value = {this.state["userName"]}
              />
              <TextField
                classes = {{
                  root: `${commonStyles.textField}`,
                }}
                onChange = {(e) => this.handleChangeEvent(e)}
                id = {"password"}
                label = {"Password"}
                variant = "outlined"
                error = {this.state.error ? true : false}
                helperText = {this.state.error}
                value = {this.state["password"]}
              />
              <div className = {`w-100 d-flex justify-content-end mt-2`}>
                <Button variant = "contained" color = "primary">
                  Login
                </Button>
              </div>
            </form>
          </div>
        </Paper>
      </div>
    );
  }
}

export default Login;

снимок браузера: Изображение не отображается в реакции js с использованием require.context

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
3
0
1 448
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны использовать свойство default для изображений:

 <img
   src = {images(`./Shahmeer.png`).default}
   alt = {`Shahmeer Avenue Logo`}
   width = "100"
   height = "100"
 />

Другие вопросы по теме