@Hellas

Как передать данные из компонента в компонент, с помощью routes?

class Header extends Component {
  constructor(props) {
    super(props);
    this.state = {
      select: false
    };
  }
  render() {
    return <div>{this.state.select}</div>;
  }
}

class Main extends Component {
  send = () => {
    // Отсюда необходимо изменить состояние в Header на this.state.select = true
  }
  render() {
    return <button onClick={this.send}></div>;
  }
}

ReactDOM.render(
  <Router history={browserHistory}>
    <Route path="/" component={Header}>
      <Route path="main" component={Main}/>
    </Route>
  </Router>, 
  document.querySelector('.app')
);
  • Вопрос задан
  • 684 просмотра
Решения вопроса 3
miraage
@miraage
Старый прогер
Тут описывается общий подход к данному вопросу.
Но он применим в академических проектах или при крохотных приложениях.

В реальности надо использовать dataflow пакеты. Прошу любить и жаловать - Redux.
Ответ написан
Комментировать
@Artcl
Ответ написан
Комментировать
@frozen_coder
Java-developer
Так заиспользуйте redux и бросайте в Main action, а в Header смотрите за изменением нужного вам поля в store. Я, конечно, не спец по react, но через роутер никто ничо не передает между компонентами. Это если компоненты не в разных ветках дерева, а если один родитель другого, то можно написать метод изменения state в родительском компоненте, передать его через props в дочерний и вызывать этот метот в дочернем, когда вам надо. Как-то так.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы