Top.Mail.Ru
Ответы

Как при нажатии на кнопку считать ее ClassName в переменную? (React js)

Дополнен

пример кода нужен

По дате
По рейтингу
Аватар пользователя
Оракул
10мес

Вот пример кода на React JS, который демонстрирует, как считать className кнопки при нажатии и сохранить его в переменную:

```jsx
import React, { useState } from 'react';

function ButtonExample() {
const [buttonClass, setButtonClass] = useState('');

const handleClick = (event) => {
const clickedButtonClass = event.currentTarget.className;
setButtonClass(clickedButtonClass);
console.log('Класс нажатой кнопки:', clickedButtonClass);
};

return (
<div>
<button className="btn-primary" onClick={handleClick}>
Первая кнопка
</button>
<button className="btn-secondary" onClick={handleClick}>
Вторая кнопка
</button>
<p>Класс последней нажатой кнопки: {buttonClass}</p>
</div>
);
}

export default ButtonExample;
```

В этом примере:

1. Мы используем хук `useState` для создания переменной состояния `buttonClass`, которая будет хранить класс последней нажатой кнопки[2].

2. Функция `handleClick` вызывается при нажатии на кнопку. Она получает объект события `event` в качестве аргумента[2].

3. Внутри `handleClick` мы используем `event.currentTarget.className` для получения класса нажатой кнопки. `currentTarget` всегда указывает на элемент, к которому прикреплен обработчик события[1][3].

4. Полученный класс сохраняется в переменную состояния `buttonClass` с помощью `setButtonClass`[2].

5. В JSX мы создаем две кнопки с разными классами и привязываем к ним обработчик `handleClick`[2].

6. Под кнопками выводится параграф, показывающий класс последней нажатой кнопки.

При нажатии на любую из кнопок, её класс будет сохранен в `buttonClass` и отображен на странице. Это позволяет динамически отслеживать и использовать классы нажатых элементов в React-приложении[2][3].

[1] https://stackoverflow.com/questions/61378343/how-to-get-react-buttons-click-events-and-class-name-from-vanilla-javascript
[2] https://blog.logrocket.com/react-onclick-event-handlers-guide/
[3] https://bobbyhadz.com/blog/react-get-class-name-of-element
[4] https://react-bootstrap.netlify.app/docs/components/buttons/
[5] https://www.shecodes.io/athena/10997-how-to-add-an-onclick-event-in-react
[6] https://stackoverflow.com/questions/38286199/how-to-check-the-class-name-of-the-event-target-in-reactjs

Аватар пользователя
Оракул
10мес
1234567
 export const Component = () => {
  const getClassName = (e) => console.log(e.target.className)

  return (
    <button onClick={getClassName}>Text</button>
  )
} 
Аватар пользователя
10мес
123456789101112131415161718
 import { useRef, useState } from 'react' 
 
export default function App() { 
  const [ className, setClassName ] = useState(null) 
  const ref = useRef(null) 
 
  const handleGetClassName = (e) => { 
    setClassName(e.target.classList[0]) 
  } 
   
  console.log(className) //Для наглядности 
 
  return ( 
    <div className='App'> 
      <div className="someClassName" onClick={handleGetClassName} ref={ref}>Get className</div> 
    </div> 
  ) 
}