Reactjs 反应js路由问题

Reactjs 反应js路由问题,reactjs,react-router,Reactjs,React Router,我正在探索react js路由,但我遇到了一个错误: 从“React”导入React;失败的道具类型:提供给路由器的无效道具子项 [反应路由器]位置“/”与任何路由不匹配 import ReactDOM from 'react-dom'; import { Router, Route, Link, browserHistory, IndexRoute } from 'react-router' class App extends React.Component { render() {

我正在探索react js路由,但我遇到了一个错误:

从“React”导入React;失败的道具类型:提供给
路由器的无效道具
子项

[反应路由器]位置“/”与任何路由不匹配

import ReactDOM from 'react-dom';
import { Router, Route, Link, browserHistory, IndexRoute } from 'react-router'

class App extends React.Component {
   render() {
     return ( < div >
      < ul >
      < li > Home < /li> < li > About < /li > < li > Contact < /li></ul >
      { this.props.children } < /div>)
    }
}



class Home extends React.Component {
  render() {
    return ( < div >
    < h1 > Home... < /h1> < /div > )
  }
}



class About extends React.Component {
  render() {
   return ( < div >
   < h1 > About... < /h1> < /div >)
  }
}



class Contact extends React.Component {
  render() {
    return ( < div >
    < h1 > Contact... < /h1> < /div > )
  }
}



ReactDOM.render(( < Router history = { browserHistory } >
  < Route path = "/" component = { App } >
    < IndexRoute component = { Home } /> 
    < Route path = "home" component = { Home } />
    < Route path = "about" component = { About }/>
    < Route path = "contact" component = { Contact }/>
  < /Route >
 < /Router>),
document.getElementById('root'))
从“react dom”导入ReactDOM;
从“react Router”导入{Router,Route,Link,browserHistory,IndexRoute}
类应用程序扩展了React.Component{
render(){
返回(
  • 主页
  • 关于
  • 联系人
    • {this.props.children}
) } } 类Home扩展了React.Component{ render(){ 返回(

主页…

) } } 类关于扩展React.Component{ render(){ 返回(

关于…

) } } 类Contact扩展了React.Component{ render(){ 返回(

联系…

) } } render(( ), document.getElementById('root'))

请告诉我如何解决。

您需要导入react组件

import React from 'react';

在这里你可以看看这个

import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, Link, browserHistory, IndexRoute } from 'react-router'

class App extends Component {
   render() {
     return ( <div>
      <ul>
      <li> Home < /li> < li > About < /li > < li > Contact < /li></ul >
      { this.props.children } < /div>)
    }
}
class Home extends Component {
  render() {
    return ( < div >
    < h1 > Home... < /h1> < /div > )
  }
}



class About extends Component {
  render() {
   return ( < div >
   < h1 > About... < /h1> < /div >)
  }
}

class Contact extends Component {
  render() {
    return ( < div >
    < h1 > Contact... < /h1> < /div > )
  }
}

ReactDOM.render(( < Router history = { browserHistory } >
  < Route path ="/" component = { App } >
    < IndexRoute component ={ Home } />
    < Route path = "home" component={ Home } />
    < Route path = "about" component={ About }/>
    < Route path = "contact" component = { Contact }/>
  < /Route >
 < /Router>),
document.getElementById('app'));
import React,{Component}来自'React';
从“react dom”导入react dom;
从“react Router”导入{Router,Route,Link,browserHistory,IndexRoute}
类应用程序扩展组件{
render(){
报税表(
  • 主页
  • 关于
  • 联系人
    • {this.props.children}
) } } 类Home扩展组件{ render(){ 返回(

主页…

) } } 类关于扩展组件{ render(){ 返回(

关于…

) } } 类接触扩展组件{ render(){ 返回(

联系…

) } } render(( ), document.getElementById('app');
使用React路由器v4

如果要使用不带“#”的链接,则需要从“react router dom”导入BrowserHistory 例如:www.yourcample.com/about

如果要使用与“#”的链接,需要从“react router dom”导入Hashhistory 例如:www.yourcample.com/#/about

如果使用react路由器4,也可以 您需要从“react router dom”导入{Switch}组件以在链接之间切换


如果您需要使用react router 4的完整工作示例,请告诉我,您必须在默认路由中包含exact

您可以使用最新的React-Router,即React-Router dom,并通过以下方式实现:
You can use latest React Router which is react-router-dom and implement it in this way : 

//importing react-router-dom
import { BrowserRouter as Router, Route } from 'react-router-dom';

//make a separate router file and export the following const Route
//make sure you import Home and About components
const Routes = () => (
  <Router>
    <div>
      <Route exact path="/" component={Home} />
      <Route exact path="/about" component={About} />
    </div>
  </Router>
)

//then in your entry file, write code like this:

//import Routes
import Routes from './config/routes';

//then render Routes using ReactDom's render method
ReactDOM.render(<Routes />, document.getElementById('root'));
//导入路由器dom 从“react Router dom”导入{BrowserRouter as Router,Route}; //制作一个单独的路由器文件并导出以下常量路由 //请确保导入“主”和“关于零部件” 常数路由=()=>( ) //然后在输入文件中,编写如下代码: //进口路线 从“/config/Routes”导入路由; //然后使用ReactDom的渲染方法渲染路由 ReactDOM.render(,document.getElementById('root'));
使用react router 4,您需要将路由封装在“react router dom”中的BrowserHistory或HashHistory组件中。

路由器的创建方式没有明显错误。你能发布一个更完整的例子来说明这个问题吗?我已经添加了完整的代码。有版本问题吗?