Не корректно отображаются данные в react.js

Всем привет. Продолжаю. изучать react.js и вот с какой проблемой я столкнулся. У меня не отображаются фото. У меня есть react component

import React, { useEffect, useState, useRef } from "react";
import { useParams } from "react-router-dom";

export default function Subjectlist() {
  const [subjects, setSubjects] = useState([]);
  const { id } = useParams();

  // Fetch subjects data
  useEffect(() => {
    fetch(`/api/subjects/${id}`, { method: "GET" })
      .then((res) => res.json())
      .then((data) => setSubjects(data))
      .catch((err) => console.log(err));
  }, []);

  const leftBTNRef = useRef(null);
  const rightBTNRef = useRef(null);
  const tabNavListRef = useRef(null);
  const [canScrollLeft, setCanScrollLeft] = useState(false);
  const [canScrollRight, setCanScrollRight] = useState(true);

  // Function to manage button visibility
  const updateIconVisibility = () => {
    const tabNavList = tabNavListRef.current;

    if (tabNavList) {
      const scrollLeftValue = Math.ceil(tabNavList.scrollLeft);
      const scrollableWidth = tabNavList.scrollWidth - tabNavList.clientWidth;
      setCanScrollLeft(scrollLeftValue > 0);
      setCanScrollRight(scrollLeftValue < scrollableWidth);
    }
  };

  // Add scroll event listener on mount
  useEffect(() => {
    const tabNavList = tabNavListRef.current;
    if (tabNavList) {
      updateIconVisibility();
      tabNavList.addEventListener("scroll", updateIconVisibility);
    }

    return () => {
      if (tabNavList) {
        tabNavList.removeEventListener("scroll", updateIconVisibility);
      }
    };
  }, []);

  const scrollRight = () => {
    const tabNavList = tabNavListRef.current;
    if (tabNavList) {
      tabNavList.scrollLeft += 150;
      setTimeout(() => updateIconVisibility(), 50);
    }
    console.log(tabNavList.scrollLeft);
    console.log(tabNavList.scrollWidth - tabNavList.clientWidth);
  };

  const scrollLeft = () => {
    const tabNavList = tabNavListRef.current;
    if (tabNavList) {
      tabNavList.scrollLeft -= 150;
      setTimeout(() => updateIconVisibility(), 50);
    }
  };
  return (
    <>
      <div className="main-container">
        <div className="tab-nav-bar">
          <div className="tab-navigation">
            <i
              className="uil uil-angle-left left-btn"
              ref={leftBTNRef}
              onClick={scrollLeft}
              style={{ display: canScrollLeft ? "block" : "none" }}
            ></i>
            <i
              className="uil uil-angle-right right-btn"
              ref={rightBTNRef}
              onClick={scrollRight}
              style={{
                display: canScrollRight ? "block" : "block",
              }}
            ></i>
            <ul className="tab-nav-list" ref={tabNavListRef}>
              {subjects.map((subject) => (
                <li className="tab-nav-item" key={subject.id}>
                  {subject.subjectName}
                </li>
              ))}
            </ul>
          </div>
        </div>
      </div>

      <div className="tab-content">
        <div className="tab">
          <div className="row">
            {subjects.map((subject) => (
              <div className="img-card" key={subject.id}>
                <img src={`${subject.img}`} alt={subject.subjectName} />
              </div>
            ))}

            <div className="right-column">
              <div className="info">
                <ion-icon
                  class="info-icon"
                  name="arrow-redo-outline"
                ></ion-icon>
                <ion-icon
                  class="info-icon"
                  name="chatbubble-ellipses-outline"
                ></ion-icon>
                <ion-icon class="info-icon" name="heart-outline"></ion-icon>
              </div>
            </div>
          </div>
        </div>
      </div>
    </>
  );
}

subjects содержит массив из объектов у которых есть ключи subjectName, img и тд. При итерации для описания в

<ul className="tab-nav-list" ref={tabNavListRef}>
              {subjects.map((subject) => (
                <li className="tab-nav-item" key={subject.id}>
                  {subject.subjectName}
                </li>
              ))}
            </ul>

у меня все работает корректно, но вот итерация для

{subjects.map((subject) => (
              <div className="img-card" key={subject.id}>
                <img src={`${subject.img}`} alt={subject.subjectName} />
              </div>
            ))}

нет. При чем если не делать итерацию для

<ul className="tab-nav-list" ref={tabNavListRef}>
              {subjects.map((subject) => (
                <li className="tab-nav-item" key={subject.id}>
                  {subject.subjectName}
                </li>
              ))}
            </ul>

то в img все отображается. В чем проблема не могу разобраться. Конфликто в css нету. прикрепил скрин что выдает в консоль  subjects введите сюда описание изображениявведите сюда описание изображения


Ответы (0 шт):