今天使用javascript
npx create-react-app
命令初始化了一个react应用,而后安装antd和react-router-dom模块后准备进行开发,到配置路由这一步的时候,引入BrowserRouter和Link是正常的,可是引入Route的时候代码却出现了提示,此模块不能使用。java
在模块安装文件夹中查看时发现Route.js这个模块是安装了的。若是你无论代码提示,仍是继续使用Route的话运行项目会报错,具体信息提示说某些属性的大小写不受支持等信息。这个问题网上查了好久没有答案,终于在本身试探下获得了解答。react
原来我用npx create-react-app建立的项目,里面用到的插件基本都默认是最新版本的,因此安装react-router-dom的时候也默认安装了最新版本5.0.1,因此在引入Route模块时出现了报错消息,看来5版本的react路由跟以前的使用方法差异是比较大的。npm
那缘由找到以后,解决起来就很简单,咱们先卸载掉安装的5.0.1的react-router-dom,而后经过命令antd
npm install react-router-dom@4.3.1 --save
来安装4.3.1版本的路由,此时引入时就能正常使用了。如图:react-router
整份代码以下所示,就当是作一个备份吧:app
import React,{Component} from 'react'; import {BrowserRouter as Router,Route,Link} from 'react-router-dom'; import { Layout, Menu, Icon } from 'antd'; import Demo01 from "./components/ArcGIS-EChart/demo01/demo01"; import Demo02 from "./components/ArcGIS-Mapv/demo01/demo02"; const { Header, Sider, Content } = Layout; class Main extends Component { state = { collapsed: false, }; toggle = () => { this.setState({ collapsed: !this.state.collapsed, }); }; //生命周期函数 componentDidMount=()=>{ } render() { return ( <Router> <Layout> <Sider trigger={null} collapsible collapsed={this.state.collapsed} style={{minHeight:947,backgroundColor:'white'}}> <div className="logo"> </div> <Menu theme="light" mode="inline" defaultSelectedKeys={['1']}> <Menu.Item key="1"> <Link to="/"> <Icon type="user" /> <span>nav 1</span> </Link> </Menu.Item> <Menu.Item key="2"> <Link to="/02"> <Icon type="video-camera" /> <span>nav 2</span> </Link> </Menu.Item> <Menu.Item key="3"> <Icon type="upload" /> <span>nav 3</span> </Menu.Item> </Menu> </Sider> <Layout> <Header style={{ background: '#fff', padding: 0 }}> <Icon className="trigger" type={this.state.collapsed ? 'menu-unfold' : 'menu-fold'} onClick={this.toggle} style={{fontSize:22,paddingLeft:15}} /> </Header> <Content style={{ margin: '24px 16px', padding: 24, background: '#fff', minHeight: 280, }} > <Route exact path="/" component={Demo01} /> <Route path="/02" component={Demo02} /> </Content> </Layout> </Layout> </Router> ); } } export default Main;