Реагировать на проблему добавления className

Я не уверен, как это искать, но после некоторого просмотра здесь и поиска в Google я, должно быть, не ищу это правильно.

Здесь я использую функцию, которая применяет className onClick. вот так.

  const [isActive, setActive] = useState(false)
  const handleClick = () => [
    setActive(!isActive) 
  ]

// this is the return

     <button onClick = {() => {jokes(); handleClick()}}> Get Jokes</button>
          <div className = {isActive ? 'card' : ''}>
            <h4>{data?.body?.[0].setup}</h4>
            <p>{data?.body?.[0].punchline}</p>
          </div>

Проблема, с которой я сталкиваюсь, заключается в том, что после нажатия кнопки применяется имя класса «карта», если кнопка нажимается снова, имя класса удаляется. Как я могу настроить его так, чтобы после его применения он не удалялся другим щелчком?

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

Ответы 1

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

Это логическая ошибка, вы переворачиваете значение isActive при каждом нажатии.

 const handleClick = () => [
    setActive(!isActive) 
  ]

className зависит от этого значения, если вы измените его, он удалит класс.

Должен быть

 const handleClick = () => [
    setActive(true) 
  ]

Вау, это простое упущение. спасибо!

Brandon.b 29.03.2022 22:01

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