博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react-router v4 的版本中 如何实现跳转功能?
阅读量:7173 次
发布时间:2019-06-29

本文共 788 字,大约阅读时间需要 2 分钟。

问题

当我们使用react-router v3的时候,我们想跳转路由,我们一般这样处理

  1. 我们从react-router导出browserHistory
  2. 我们使用browserHistory.push()等等方法操作路由跳转。

类似下面这样

import browserHistory from 'react-router';export function addProduct(props) {  return dispatch =>    axios.post(`xxx`, props, config)      .then(response => {        browserHistory.push('/cart'); //这里      });}

but!! 问题来了,在react-router v4中,不提供browserHistory等的导出~~

那怎么办?我如何控制路由跳转呢???

解决方法

使用 withRouter

withRouter高阶组件,提供了history让你使用~

import React from "react";import {withRouter} from "react-router-dom";class MyComponent extends React.Component {  ...  myFunction() {    this.props.history.push("/some/Path");  }  ...}export default withRouter(MyComponent);

这是官方推荐做法哦。但是这种方法用起来有点难受,比如我们想在redux里面使用路由的时候,我们只能在组件把history传递过去。。

就像问题章节的代码那种场景使用,我们就必须从组件中传一个history参数过去。。。

转载地址:http://hwdzm.baihongyu.com/

你可能感兴趣的文章
社会保障系列1《介绍》
查看>>
Windows10开发手记-Windows App Certification Kit使用教程
查看>>
iOS开发网络篇—NSURLConnection基本使用(二)
查看>>
事件引入和本质
查看>>
Java:IO流的综合用法(从键盘录入数据并打印在控制台上)
查看>>
只允许输入数字和小数点
查看>>
快速排序(五)
查看>>
ASP.NET MVC 中将FormCollection与实体间转换方法 (转)
查看>>
至linuxNIC添加多个IP
查看>>
WebKit.net最简单使用方法
查看>>
CDN技术
查看>>
开发人员看测试之细说JBehave
查看>>
实验记录贴 —— 账号同步实验 RTX 和 LDAP(AD域)
查看>>
【C语言】reverse_string(char * string)(递归)
查看>>
SQLHlper意识
查看>>
POJ2195 Going Home 【最小费用流】+【最佳匹配图二部】
查看>>
Swift - 给表格UITableView添加索引功能(快速定位)
查看>>
fixed的left:50%,漂浮
查看>>
浅谈JAVA集合框架
查看>>
iOS_8_键盘操作简单
查看>>