2016-03-31 7 views
6

stavo cercando di passare programatically a una pagina diversa in questo modo this.props.history.push('/new-path'); ha funzionato, ma ho avuto un avvertimento deprecazione in consolle dicendo:this.props.history è deprecato (reagirà-router)

Warning: [react-router] props.history and context.history are deprecated. Please use context.router. più qui https://github.com/reactjs/react-router/blob/master/upgrade-guides/v2.0.0.md#changes-to-thiscontext


in seguito ho cercato di usare questo nuovo metodo in questo modo this.context.router.push('/new-path') ma questo non sembra essere il giusto approccio.

+0

possibilmente correlate: http://stackoverflow.com/questions/35213446/react- router-questo-contesto-router-push-fa-non-rimonta-the-componente –

risposta

13

Forse hai dimenticato di definire il router come contextType? Supponendo di avere un componente simile:

class YourComponent extends React.Component { 
     render() { 
     return <div></div>; 
     } 
} 

È necessario definire i contextTypes come segue proprio sotto il componente:

YourComponent.contextTypes = { 
    router: React.PropTypes.object.isRequired 
};