J'essaie de comprendre comment revenir à la page précédente. J'utilise [react-router-v4][1]
Voici le code que j'ai configuré dans ma première page de renvoi :
<Router>
<div>
<Link to="/"><div className="routerStyle"><Glyphicon glyph="home" /></div></Link>
<Route exact path="/" component={Page1}/>
<Route path="/Page2" component={Page2}/>
<Route path="/Page3" component={Page3}/>
</div>
</Router>
Pour passer aux pages suivantes, il suffit de le faire :
this.props.history.push('/Page2');
Cependant, comment puis-je revenir à la page précédente ? J'ai essayé plusieurs choses comme celles mentionnées ci-dessous, mais sans succès : 1. this.props.history.goBack();
Donne une erreur :
TypeError : null n'est pas un objet (évaluation de 'this.props')
this.context.router.goBack();
Donne une erreur :
TypeError : null n'est pas un objet (évaluation de 'this.context')
this.props.history.push('/');
Donne une erreur :
TypeError : null n'est pas un objet (évaluation de 'this.props')
Affichage de la Page1
code ci-dessous :
import React, {Component} from 'react';
import {Button} from 'react-bootstrap';
class Page1 extends Component {
constructor(props) {
super(props);
this.handleNext = this.handleNext.bind(this);
}
handleNext() {
this.props.history.push('/page2');
}
handleBack() {
this.props.history.push('/');
}
/*
* Main render method of this class
*/
render() {
return (
<div>
{/* some component code */}
<div className="navigationButtonsLeft">
<Button onClick={this.handleBack} bsStyle="success">< Back</Button>
</div>
<div className="navigationButtonsRight">
<Button onClick={this.handleNext} bsStyle="success">Next ></Button>
</div>
</div>
);
}
export default Page1;
0 votes
Quelles sont les quelques choses que vous avez essayées ?
4 votes
Essayez
this.props.history.goBack();
github.com/ReactTraining/react-router/blob/0 votes
@VivekDoshi : J'ai ajouté ce que j'ai essayé avec les erreurs que j'ai rencontrées.
0 votes
@AkshayLokur, pouvez-vous s'il vous plaît poster le code complet, à partir duquel vous essayez d'exécuter this.props.history.goBack(); ?
0 votes
@VivekDoshi : C'est fait, jetez un coup d'oeil, merci.
0 votes
Veuillez vérifier ma réponse, vous avez oublié this.handleBack = this.handleBack.bind(this) ;
0 votes
@VivekDoshi : Merci, ça a marché :)
0 votes
Consultez la réponse de @LawrenceEagles ci-dessous pour connaître les composants fonctionnels. Facile, et sans withRouter