Эффект наведения попутного ветра не работает в компоненте React

У меня есть компонент React под названием «Кнопки», и, как следует из названия, этот компонент используется для всех кнопок в моем проекте. Чтобы этот компонент был полностью динамичным, я решил получить цвет фона кнопок из реквизита (цвет фона — класс попутного ветра). Тогда я решил поставить на кнопку класс наведения, чтобы при наведении мыши на кнопку цвет фона увеличивался на 100 единиц.

Компонент кнопки

export default function Button({ bg = "", children }) {

    let bgColor = bg.split("-")
    bgColor[2] = (+bgColor[2] + 100).toString()
    let hoverEffect = "hover:" + bgColor.join("-")

    return (
        <button className = {`${bg} ${hoverEffect} flex items-center justify-center gap-2 rounded-lg p-2 outline-none border-none transition-all cursor-pointer`}>
            {children}
        </button>
    )
}

Использование компонента кнопки

<Button bg = {"bg-sky-500"}>
submit
</Button>

Для этого я реализовал логику JavaScript этой программы, но в итоге при добавлении этого класса в компонент ничего не происходит. В чем проблема?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
64
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

При создании динамических классов нам необходимо добавить эти классы в список надежных источников в файле Tailwind.config.js.

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

/** @type {import('tailwindcss').Config} */
export default {
  content: [
    "./index.html",
    "./src/**/*.{js,ts,jsx,tsx}",
  ],
  safelist: [
    {
      pattern: /bg-(.*)-(.*)/,
      variants: ['hover'],
    },
        ],
  theme: {
    extend: {},
  },
  plugins: [],
}

Просто проверьте bg,hoverEffect и убедитесь, что они работают так, как вы ожидали.

Если нет, попробуйте разделить эту строку:

bgColor[2] = (+bgColor[2] + 100);
bgColor[2] = bgColor[2].toString()

Здесь также есть логическая ошибка: если bg выглядит примерно так bg-blue-900, то ваш код преобразует его в bg-blue-1000 в CSS попутного ветра, это максимум 900, я думаю!

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