Как динамически изменить цвет фона элемента <select> с помощью React и Tailwind?

Я делаю компонент React.js с Tailwind CSS. Я хочу изменить цвет фона выбранного элемента в зависимости от выбранного параметра. Это то, что я пробовал:

import { useState } from "react";

export function Options() {
  const [selectedColor, setSelectedColor] = useState(""); 

  const handleSelectChange = (e) => {
    setSelectedColor(e.target.value);
  };

  return (
      <select
        className = {`bg-${selectedColor}-200`}
        onChange = {handleSelectChange}
        value = {selectedColor}
      >
        <option value = "">Select a color</option>
        <option value = "red">Red</option>
        <option value = "yellow">Yellow</option>
      </select>
  );
}

Я знаю, что эти классы существуют в Tailwind CSS. Так что же мне не хватает?

Я проверил, не связано ли это с моей конфигурацией попутного ветра, но вроде все в порядке. Я добавил другие стили, и они отображаются.

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

Ответы 1

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

Согласно документации (https://tailwindcss.com/docs/content-configuration#class-detection-in-eepse) вы не можете использовать bg-${selectedColor}-200.

У вас есть два варианта:

1) Измените детали <option> на что-то вроде этого:

<option value = "bg-red-200">Red</option>
<option value = "bg-yellow-200">Yellow</option>

Добавьте значения bg-red-200 и bg-yellow-200 (https://tailwindcss.com/docs/content-configuration#safelisting-classes) в свой список безопасных.

  safelist: [
    'bg-red-200',
    'bg-yellow-200'
  ]

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