在a标签下⾯添加⼀个按钮并加上onClick事件,通过this.props.history.push这个函数跳转到detail页⾯。在路由组件中加⼊的代码就是将history这个对象注册到组件的props中去,然后就可以在⼦组件中通过props调⽤history的push⽅法跳转页⾯。
很多场景下,我们还需要在页⾯跳转的同时传递参数,在react-router-dom中,同样提供了两种⽅式进⾏传参。
此外还可以通过push函数隐式传参。修改home.js代码如下:
在detail.js中,就可以使⽤this.props.history.location.state获取home传过来的参数:
componentDidMount() {
//console.log(this.props.match.params); console.log(this.props.history.location.state);}
跳转后打开控制台可以看到参数被打印:
有些场景下,重复使⽤push或a标签跳转会产⽣死循环,为了避免这种情况出现,react-router-dom提供了replace。在可能会出现死循环的地⽅使⽤replace来跳转:
this.props.history.replace('/detail');
场景中需要返回上级页⾯的时候使⽤:
this.props.history.goBack();
因篇幅问题不能全部显示,请点此查看更多更全内容