Как имплементировать React.Navigation в компонент?

Нужно сделать навигацию на реакте. Приложение на ES6.
Вопрос в том, как внедрить mixins: [ Navigation ] в класс реакта?
Не хочется уходить на React.createClass({}) c class Main extend React.Components {}

Решил через context.
static contextTypes = {
    router: PropTypes.object.isRequired
  };


и потом можно выполнять this.context.transitionTo('/')
Но есть одно НО, в консоль вываливается варнинг
Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op.
  • Вопрос задан
  • 524 просмотра
Решения вопроса 1
STJ
@STJ Автор вопроса
Front-end developer
Решение.
В компоненте достать из контекста инстанс роутера.

static contextTypes = {
    router: Router.PropTypes.object.isRequired
}


Потом в копоненте роутер будет доступен в компоненте и его можно использовать так
this.contex.router.transitionTo("/");

Если у кого-то тесты падают с ошибкой на синтаксис и указыют на знак = (равно) в static методе, то нужно добавить параметр stage=0 в загрузчике babel
loaders: [
          { test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader?stage=0' },
        ]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
rajdee
@rajdee
Front-end developer
А разве должно быть не this.context.router.transitionTo?
Ответ написан
Ваш ответ на вопрос

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

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