spacenear
@spacenear
web developer

Как изменить состояние во всех экземплярах компонента React?

Только начал изучать реакт. Есть компонент кнопки и на старнице может быть много таких кнопок. Как при клике на любую из кнопок изменить state во всех экземплярах этого компонента? this.setState работает только на той кнопке которую нажал
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
askhat
@askhat
SDE @ Akvelon
Для этого каждому экземпляру нужно передать ссылку на одно значение

class Buttons extends Component {
  state = {
    foo: 'bar'
  }

  changeText = () => {
    if (this.state.foo === 'bar') {
      this.setState({ foo: 'foo' })
    } else {
      this.setState({ foo: 'bar' })
    }
  }     

  render() {
    return (
      <Button text={this.foo} />
      <Button text={this.foo} />
      <Button text={this.foo} />
      <Button text={'Изменить текст'} onClick={this.changeText} />
    )
  }
}


Пример глупый, но принцип иллюстрирует.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
18 мая 2021, в 23:22
40000 руб./за проект
18 мая 2021, в 22:58
1000 руб./за проект
18 мая 2021, в 22:41
7000 руб./за проект