Изменения стиля при нажатии кнопки React

128
15 ноября 2020, 15:30

При нажатии на одну из двух кнопок отображается имя. Как заставить активную кнопку изменять свой цвет и высоту текста, пока не будет нажата другая кнопка? Я думал сделать это через: active (CSS), но он работает только при нажатии и сразу же стиль становится тем же.

import React, { Component } from 'react';
class trueName extends Component {
constructor(props) {
this.state = {
  name: {},
};
} 
 editName = (names)=>{
 this.setState({name:names});
}
render() {
return(
  <div >
    <div className="SelectName">
      <span>{this.state.name}</span>
    </div>
    <button
    onClick={ () => this.editName(John)}>
      <span>My name John</span>
    </button>
    <button
    onClick={ () => this.editName(Donald)}
    >
      <span>My name Donald</span>
    </button>
  </div>
)}}

export default trueName;

Answer 1

Не проще ли было, в state указать название class.

constructor(props) {
this.state = {
  name: {},
  defaultClass: "SelectName"
};

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

 <div className="SelectName">

а

 <div className={this.state.defaultClass}>

Тогда при onClick можно легко заменить этот className

READ ALSO
Чтение объектов класса из файла в массив объектов класса

Чтение объектов класса из файла в массив объектов класса

Здесь два главных класса: класс Поезд и класс Билеты, класс Билеты наследует класс ПоездПроблема в том, что не могу считать из файла ( в который...

117
Не могу вызвать функцию _beginthread(..), c++

Не могу вызвать функцию _beginthread(..), c++

Хочу запустить метод в отдельном потоке при помощи функции _beginthread(), но получаю ошибку, если не было указано void* в аргументах функции

125
Ограничение символов QTextEdit

Ограничение символов QTextEdit

Есть ли в Qt метод, который ограничивает кол-во вводимых символов в QTextEdit или придется самому его реализоаывать?

108
Реализовать последовательность

Реализовать последовательность

Мне нужно реализовать последовательность https://oeisorg/A323119 на С++, но конкретных формул нет

102