react-router4.0踩到的坑

金刚航母 金刚航母     2022-10-11     652

关键词:

接手的项目需要二次开发,项目是使用的react+react-router4.0+antd+redux来开发的,由于之前用的是react-router2.0,react-router2.0和4.0之间变化还是挺多的,在这里记录一下踩到遇到的问题

1.dom组件不再在react-router中引入,而是在react-router-dom中引入

2.不再使用<Router history={}>来定义history属性,4.0加入了BroswerRouter和HashRouter组件,引入时可以import {BrowserRouter as Router} from ‘react-router-dom‘ 来引入

3.<Router>组件下只能有一个单独的节点,类似render return下,只能有一个父节点,并且Router下的单一父节点下,现在可以放入其他组件,不一定是Route组件了。

4.<Route>组件增加了exact属性,添加了这个属性之后,如这个组件path=‘/one‘,则不会再匹配url=‘/one/two‘的路由地址

5.<Route>下增加子路由会报错,现在<Route>下不能添加子路由,如果想要添加子路由,则到该路由下匹配的组件中添加<Route>

6.react-router中不再有BrowserHistory,要在js中进行路由跳转,不依赖Link,需要使用contextTypes越级传递router,使用router下的方法在js中进行路由跳转,并且在新版react中,PropTypes不再存在于React下,需要单独从prop-types中引入,具体实现方法如下

import React,{Component} from ‘react‘
import PropTypes from ‘prop-types‘

class Example from Component {
       constructor(props){
                super(props)
                this.clickHandle = this.clickHandle.bind(this)
        }    
        clickHandle(){
            this.context.router.history.push(url)
        }    
        render(){
                return(
                    <div>
                        <button onClick={this.clickHandle}></button>
                    </div>
            }
}

Example.contextTypes = {
    router:PropTypes.object
}

export default Example

暂时遇到的问题是这些,后续遇到问题会再继续补充

uwp:记录一下这几天踩到的坑

原文:UWP:记录一下这几天踩到的坑最近在玩微软的DesktopBridge项目,遇到了如下几个坑:1、文档中给的是js项目魔改的方法,其实C#项目也可以魔改加入UWP部分的,区别在于:不用在项目文件里写<AppxGeneratePrisForPortableLibrariesEnab... 查看详情

androidlauncher之踩到的坑

需求:1、用android系统launcher隐藏主菜单所有应用显示在桌面即workspace上;2、隐藏launcher上方默认的googlesearch;3、切换一套launcher主题。实现效果:分析:1、隐藏主菜单,google默认在androidL版本有一个隐藏主菜单... 查看详情

一些自己踩到的坑(代码片段)

1:root.first_diagnosis_time.astimezone(TZ),"%Y-%m-%d%H:%m" 像这种分钟就会不准确,要用大写。2:数据硬盘满了,redis就会连接不上报错。3:不能在全局变量里定义时间。4:导入本地配置文件try:from.local_settingsimport*exceptExceptionase:print(e)fin... 查看详情

使用shutil.move时踩到的坑

运行了很长一段的做数据脚本出问题了,有点纳闷。通过调式发现卡在shutil.move上,日志提示信息:[Errno13]Permissiondenied:...经过一番周折,还是在开发彭同学的提醒下,说是否是文件属性为只读的原因造成的。将文件的只读属性... 查看详情

关于iview中tabs踩到的坑

参考技术A最近在使用iview中的tabs控件,其他配置选择默认配置,结果发现,tabpane的高度由最高的一个tabpane决定,也就是说,内容比较少即高度不是最大的tabpane下方会出现空白。解决方法:将tab切换时的动画禁止掉即可解决这... 查看详情

kafka并发数配置过程中踩到的坑instancealreadyexistsexception

2017-07-0513:09:15.460[kafka_spout:7-MultipleThreadSpoutExecutors]WARNo.a.kafka.common.utils.AppInfoParser-ErrorregisteringAppInfombeanjavax.management.InstanceAlreadyExistsException:kafka.consumer:ty 查看详情

单元测试踩到的坑

 使用client可以测试视图的get/post方法 django单元测试历险记 我们的django不同的版本之间的差异还是挺大的,大到足以影响正常的模块包调用,我在这些博客地址中找到的core是django中的包,它里面的子模块包在不同的版本之... 查看详情

一个sqoopexport案例中踩到的坑(代码片段)

案例分析:  需要将hdfs上的数据导出到mysql里的一张表里。  虚拟机集群的为:centos1-centos5问题1:在centos1上将hdfs上的数据导出到centos1上的mysql里:sqoopexport  --connectjdbc:mysql://centos1:3306/test\\  --usernameroot  --passwordroot... 查看详情

使用nohup+&踩到的坑

首先分清楚nohup与&:  &是指在后台运行一般在执行命令后,都会显式的在前台执行,当Ctrl+C后进程回宕掉,但是在命令后加&,即使Ctrl+C,程序还在进行,但是,当关闭Xshell后,程序就会宕掉。  nohup是指忽略SiGHUP信... 查看详情

mysqlserver-id踩到的坑

最近踩到一个说大不大,说小不小的坑,在此分享出来给各位同学。事情是这样的,线上有2台服务器,1主1从。A->B,B服务器从A服务器同步数据。每天使用xtrabackup在B服务器上面进行全备。某天A服务器挂了,后来由于某种原因... 查看详情

flask_socketio踩到的坑(代码片段)

...界面显示。由于之前也没有用过flask_socketio,这里把踩到的 查看详情

安装hadoop集群模拟大数据集群踩到的坑(代码片段)

1.安装虚拟机使用VMWARE安装虚拟机CentOS7时候踩到的第一个坑,当安装完毕CentOS7的时候,使用vmwareworkstation pro14进行启动虚拟机,win10系统有概率蓝屏重启报错,这时候就需要更新到更高版本的VMwareworkstationpro16进行... 查看详情

安装hadoop集群模拟大数据集群踩到的坑(代码片段)

1.安装虚拟机使用VMWARE安装虚拟机CentOS7时候踩到的第一个坑,当安装完毕CentOS7的时候,使用vmwareworkstation pro14进行启动虚拟机,win10系统有概率蓝屏重启报错,这时候就需要更新到更高版本的VMwareworkstationpro16进行... 查看详情

站点映射到外网踩到的坑,跳转丢失端口

今天准备的线上演示版本,把端口映射到外网后,发现跳转不正确,丢失了端口。环境:centos7+docker方案尝试:1、修改docker的端口映射,直接把nginx的端口改为外网的端口。改完之后,大部分连接好用,还有个别链接不好用。方... 查看详情

我踩到的关于fragment状态的保存和恢复的坑(代码片段)

在进行项目开发的时候遇到了一个奇怪的坑,在Activity和Fragment传递对象的时候已经对对象进行了判空处理,但是在Fabric统计上还是出现了“NullPointException”,我们在代码中的具体实现是在Activity里将对象注入Fragment中&... 查看详情

记一次使用cobar踩到的坑(代码片段)

起因起因是因为日志里经常报出锁等待超时的错误,并且这个是环环相扣的,一个锁等待会直接引发另外的锁等待,所以危害非常严重,影响非常深远。寻找原因发现是C3P0报出了DEADLOCK,如下图所示:分析... 查看详情

h2数据库做单测数据库时踩到的坑(代码片段)

H2数据库用来做单测数据库,可以自定义初始化数据,不用担心数据库内容更改造成单测跑不过问题,不过H2数据库跟实际使用的Mysql还是有一定区别。1.H2数据库不支持Mysql的批量更新功能,支持批量插入--批量更新(H2不支持)&l... 查看详情

log4cpp简单使用及踩到的坑(代码片段)

log4cpp是log4j的一个扩展,C++开发者可用该库记录日志,可输出到终端,亦可保存到文件。下面简单demo展示如何输出日志到输出终端。1#include<iostream>2#include<log4cpp/Category.hh>3#include<log4cpp/OstreamAppender.hh>4#include<log4cpp/... 查看详情