与链接

时间:2017-09-04 13:21:57

标签: reactjs react-router react-router-dom

我正在尝试将组件从一个路由到另一个,我收到与反应路由器链接相关的错误,并且反应路由器的错误是 - Failed to compile我尝试使用react路由器并将其包添加到我的项目库。

这里是我为路线做的代码: - 1)[Index.js文件] [2]
2)[Navlink.js文件] [3]
3)[nav.js文件] [4]

在Index.js中,我在渲染方法中创建了一个路由器,但它显示了上面的错误 在Navlink.js中,我创建了一个链接返回类,它提供了链接和所有属性 在nav.js文件中,我通过import navlink.js文件使用了navlink。 但是错误一直与反应路由器中存在的链接有关,而hashHistory在反应路由器中确实存在。

如果有人知道请帮助。

1)Index.js



import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { Router, Route, hashHistory } from 'react-router';
import './index.css';
import App from './App';
import Homecontent from './homepage';
import Foo from './footer';
import registerServiceWorker from './registerServiceWorker';
import ourAdvantages from './ouradvantage';
import LoginForm from './loginform';
import BoRegistration from './boregistration';
import VoRegistration from './voregistration';

ReactDOM.render(<App />, document.getElementById('header'));
registerServiceWorker();
// ReactDOM.render(<Homecontent />, document.getElementById('homecontent'));
ReactDOM.render((
    <Route path="/" component={App}>
      <Route path="/loginform" component={LoginForm}>
      </Route>
    </Route>
), document.getElementById('homecontent'))
//ReactDOM.render(<LoginForm />, document.getElementById('loginform'));
//ReactDOM.render(<BoRegistration />, document.getElementById('boRegistration'));
//ReactDOM.render(<VoRegistration />, document.getElementById('voRegistration'));
//ReactDOM.render(<ourAdvantages />, document.getElementById('ouradvantages'));
ReactDOM.render(<Foo />, document.getElementById('footer'));
&#13;
&#13;
&#13;

2)navLink.js

&#13;
&#13;
import React from 'react'
import { Link } from 'react-router'

export default React.createClass({
  render() {
    return <Link {...this.props} activeClassName="active"/>
  }
})
&#13;
&#13;
&#13;

3)nav.js

&#13;
&#13;
class NavMenu extends Component {
  render(){
    return (
      <ul className="navbar-nav">
      <li className="nav-item">
        <navLink to="/loginform/reactjs/react-router"><a className="nav-link" href="#">Home</a></navLink>
      </li>
      <li className="nav-item">
        <a className="nav-link" href="#">Our Advantages</a>
      </li>
      <li className="nav-item">
        <a className="nav-link" href="#">Offers</a>
      </li>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:7)

我希望您使用react-router 4x。在这些新版本中,您必须从Link导入react-router-dom

import { Link } from 'react-router-dom';

您可以在此https://reacttraining.com/react-router/web/api/Link查看相同内容。

但我希望你正在学习一些教程或仍然使用react-router 3.x风格。因此,您必须使用正确版本的react-router或根据版本遵循正确的写作风格。