React.js не может найти путь к файлу с переменной

я раньше не использовал React, и поэтому мой вопрос может звучать глупо, так вот, у меня есть простой проект с TailwindCSS, я хочу при создании нужной мне "структуры" проверять существует ли картинка по указанному пути и добавить определенный класс моему div'у, но React не разрешает так сделать. App.js:

import './App.css';
import Header from './Header';
import Tools from './Tools';

function App() {
  return (
    <div>
      <header>
        <Header/>
      </header>
      <main className='flex w-[80vw] mx-auto'>
        <div id='tools'>
          <Tools/>
        </div>
      </main>
    </div>
  );
}

export default App;

Tools.js:

const Tools = () => {
    return (
        <main className="my-4">
            <h1 className="text-4xl">Инструменты</h1>
            <div>
                <ul>
                    {Box("Big test", "TESTS ARE COOL", "construction.png", "#!")}
                </ul>
            </div>
        </main>
    )
}

const Box = ({name, desc, img, href}) => {
    let imgExists;
    try{
        require(`./img/tools/${img}`);
        imgExists = true;
    }
    catch(err){
        imgExists = false;
    }
    return (
        <li>
            <a href={href}>
                <div>
                    <h2>{name}</h2>
                    <p>{desc}</p>
                </div>
                <div className={imgExists === true ? `bg-[url('./img/tools/${img}')]` : "not-found"}></div>
            </a>
        </li>
    )
}

export default Tools

(Проблем в Header нету)

Ошибка:

Failed to compile.

Module not found: Error: Can't resolve './img/tools/${img}' in '/home/anime/fullstack/PRACTICE/ddracenet/src'
ERROR in ./src/index.css (./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[5].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[5].use[2]!./node_modules/source-map-loader/dist/cjs.js!./src/index.css) 5:36-82
Module not found: Error: Can't resolve './img/tools/${img}' in '/home/anime/fullstack/PRACTICE/ddracenet/src'

webpack compiled with 1 error


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

Автор решения: Anime.pdf

Мне дали ответ на английской части сайта. Я использовал проверку изображения из ответа ligntbulb.dev2022 и решил присваивать переменной нужный путь, это все починило!

import Axios from "axios";
import React, {useEffect} from "react";

const Tools = () => {
    return (
        <main className="my-4">
            <h1 className="text-4xl">Инструменты</h1>
            <div>
                <ul>
                    <Box name="Big test" desc="TESTS ARE COOL" img="construction.png" href="#!" />
                </ul>
            </div>
        </main>
    )
}

const Box = ({name, desc, img, href}) => {
    let path = `img/tools/${img}`;
    useEffect(() => {
        Axios.get(path).then(() => {
            //pass
        }).catch(() => {
            // eslint-disable-next-line
            path = "not-found";
        })
    }, []);

    return (
        <li>
            <a href={href}>
                <div>
                    <h2>{name}</h2>
                    <p>{desc}</p>
                </div>
                <div className={path}></div>
            </a>
        </li>
    )
}


export default Tools
→ Ссылка