Не обновляется state, после перезаписи значений

Пишу функцию на react.js, которая должна менять класс div-а, посредством смены значения state.

Столкнулся с такой проблемой, что согласно console.log значения перезаписывается, но state - остаётся без изменений, о чём свидетельствует неизменность классов в HTML и браузерное расширение.

class ThirdSection extends React.Component {
    constructor(props) {
        super(props);

        this.state = {
            classes: {
                print: 'print col-md-3 m-auto'
            }
        };
    }

    render() {
        let funcName = () => {
            console.log(this.state.classes.pint); // print col-md-3 m-auto
            this.state.classes.pint = 'hide';
            console.log(this.state.classes.pint) // hide
        }
        return (
            <button onClick={() => funcName()}>Change Value!</button>
            <div className={this.state.classes.print}>Some Content</div>
        )
    }
}

Ответы (1 шт):

Автор решения: Sergei Kirjanov
function ThirdSection(props){
        const [print,setPrint] = useState('print col-md-3 m-auto')
        return (
            <button onClick={ev => setPrint('hide')}>Change Value!</button>
            <div className={print}>Some Content</div>
        )
}

Ошибки:

  • опечатка pint/print
  • нельзя присваивать внутрь стейта, нужен set*(новое_значение)

Просто:

  • функциональные компоненты короче и ясней
  • если funcName не меняют, она const
  • onClick получает аргументом event
→ Ссылка