Задать вопрос
MaximAr1es
@MaximAr1es
Frontend junior developer

Как изменить состояние родителя из дочернего компонента React?

Передаю состояние родителя в дочерний компонент: <Component openModal={this.state.openModal} />

Далее в дочернем компоненте есть элемент по клику на который вызывается метод, который должен изменить состояние родителя на true.
Как это сделать?
  • Вопрос задан
  • 5851 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
Решения вопроса 2
@Gary_Ihar
JS *овнокодер
1) создайте обработчик в родительской компоненте, который будет менять стейт.
2) передайте обработчик в дочернюю компоненту.
3) используйте обработчик в дочерней компоненте и меняйте Стейт в родительской компоненте.
Ответ написан
8XL
@8XL
Я высокий, но ниже, чем вы подумали.
Верное решение подсказали, слегка разберу для понимания.
<Parent>
  <Children openModal={this.state.openModal} onChange={this.onChange} />
<Parent />


в Parent объявите метод
onChange=()=>{
  this.setState({openModal : true})
}


В Children так
<div onClick={this.props.onChange}>
  ...какие-то элементы...
</div>


Всё просто)

Но еще проще и гораздо надежнее https://ru.reactjs.org/docs/lifting-state-up.html
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
notiv-nt
@notiv-nt
Как ваше ничего? Да, моё тоже
<Component openModal={this.state.openModal} onChange={this.onChange} />
Ответ написан
Комментировать
kirbi1996
@kirbi1996
Помимо состояния еще и функцию из родителя туда прокинь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы