1.replace

replace是替换原来页面的过程
使用

  1. this.props.history.replace()

2.push

push是一个 压栈的过程,因此它可以进行回退
使用

  1. this.props.history.push()

3.案例

  1. import React, { Component } from 'react'
  2. import {Link,Route} from 'react-router-dom'
  3. import Col from './Col'
  4. export default class index extends Component {
  5. state={
  6. result:[
  7. {
  8. id:"01",
  9. title:"我是关于1"
  10. },
  11. {
  12. id:"02",
  13. title:"我是关于2"
  14. },
  15. {
  16. id:"03",
  17. title:"我是关于3"
  18. },
  19. {
  20. id:"04",
  21. title:"我是关于4"
  22. }
  23. ]
  24. }
  25. // replace方式
  26. replaceShow=(id,title)=>{
  27. return (e)=>{
  28. this.props.history.replace(`/about/col`,{id,title})
  29. }
  30. }
  31. //push的方式
  32. pushShow=(id,title)=>{
  33. return ()=>{
  34. this.props.history.push(`/about/col`,{id,title})
  35. }
  36. }
  37. render() {
  38. const {result}=this.state
  39. console.log(result)
  40. return (
  41. <div>
  42. <h1>about组件</h1>
  43. <hr/>
  44. <ul>
  45. {
  46. result.map(item=>{
  47. return(
  48. <li key={item.id}>
  49. <Link to={{pathname:'/about/col',state:{id:item.id,title:item.title}}}>{item.title}</Link>
  50. <button onClick={this.pushShow(item.id,item.title)}>push方式跳转</button>
  51. <button onClick={this.replaceShow(item.id,item.title)}>replace方式跳转</button>
  52. </li>
  53. )
  54. })
  55. }
  56. </ul>
  57. <Route path='/about/col' component={Col}></Route>
  58. </div>
  59. )
  60. }
  61. }