Meine App ist ES6 React-Anwendung mit React-Router. Ich möchte Benutzer nach einer kleinen Verzögerung auf eine andere Seite umleiten. Hier ist meine Reaktion Komponente:Erforderlicher Kontext `router` wurde nicht angegeben. Überprüfen Sie die Render-Methode von `RoutingContext`
import React from 'react'
import { Navigation } from 'react-router'
export default class Component extends React.Component {
render() {
return (
<div>Component content</div>
)
}
componentDidMount() {
setTimeout(() => {
// TODO: redirect to homepage
console.log('redirecting...');
this.context.router.transitionTo('homepage');
}, 1000);
}
}
Component.contextTypes = {
router: React.PropTypes.func.isRequired
}
Und reagieren-Router Routing-Tabelle:
render(
<Router>
<Route path='/' component={ App }>
<IndexRoute component={ Component } />
</Route>
</Router>
, document.getElementById('app-container'));
Das Problem ist, dass 'Router' Eigenschaft nicht in das Bauteil geleitet wird. Chrome-Konsole Inhalt ist:
Warning: Failed Context Types: Required context `router` was not specified in `Component`. Check the render method of `RoutingContext`.
redirecting...
Uncaught TypeError: Cannot read property 'transitionTo' of undefined
Reagieren Version 0.14.2 ist, reagieren-Router Version 1.0.0-RC4 Wo kann ich Fehler machen?
ich Rat gefolgt von http://stackoverflow.com/questions/32033247/react-router-transitionto-is-not-a-function/33008706#33008706 erstellt Konstruktor und geändertenem Wert von 'router' Kontexttyp, aber das Ergebnis ist 'transitionTo' ist immer noch nicht verfügbar. – taydakov
PayPal-Entwickler hatten ähnliche Problem, aber es wurde geschlossen https://github.com/paypal/react-engine/issues/82 – taydakov