Я пытаюсь автоматически изменить путь через n секунд. (без использования <Link to="/home">Home</Link>
).Проблема маршрутизации: this.context.router не определен при попытке перенаправления
Мой код выглядит следующим образом:
class ComponentName extends Component {
constructor (props, context) {
super(props, context);
}
componentDidMount() {
setTimeout(function(){
this.context.router.transitionTo('/home');
}.bind(this), 3000)
}
render() {return (<div>..will go to the home page</div>)}
}
ComponentName.contextTypes = {
router: function() {
return React.PropTypes.func.isRequired;
}
};
export default ComponentName;
Это ошибка, я получаю
Uncaught TypeError: Cannot read property 'transitionTo' of undefined
на линии this.context.router.transitionTo('/home');
ака this.context.router не определено.
этот. Текст определен, поэтому никаких проблем нет afaik.
Вещи я попробовал некоторые из следующих действий:
this.context = context;
static contextTypes: {
history: React.PropTypes.object,
location: React.PropTypes.object,
router: React.PropTypes.func.isRequired
}
ComponentName.contextTypes = {
router: React.PropTypes.func.isRequired
}
this.context.history.transitionTo('/home');
this.context.transitionTo('/home');
this.transitionTo('/home');
Факт в том, что this.context.router до сих пор не определен, Я искал больше потоков (в основном этот: https://github.com/rackt/react-router/issues/975), и до сих пор не мог найти что-то, что сработало бы для меня.
Примечание: Я использую ES6 &
"react": "^0.14.0",
"react-router": "^1.0.0-rc3"
Почему нижняя сторона? это работает – Dude