2017-10-28 53 views
0

我是比较新的反应,并在编程和一般的问题已经出现,我一直在试图解决现在的某个时候,但似乎无法找到一个解决方案。 我的问题是,每当我按下链接“登陆”(可以在倒数第二个代码片段中)我得到的错误,ReactJS未捕获的ReferenceError:未定义链接

Uncaught ReferenceError: Link is not defined 
at Object.render (bundle.js:37775) 
at bundle.js:33451 
at measureLifeCyclePerf (bundle.js:32731) 
at ReactCompositeComponentWrapper._renderValidatedComponentWithoutOwnerOrContext (bundle.js:33450) 
at ReactCompositeComponentWrapper._renderValidatedComponent (bundle.js:33477) 
at ReactCompositeComponentWrapper.performInitialMount (bundle.js:33017) 
at ReactCompositeComponentWrapper.mountComponent (bundle.js:32913) 
at Object.mountComponent (bundle.js:4990) 
at ReactCompositeComponentWrapper._updateRenderedComponent (bundle.js:33420) 
at ReactCompositeComponentWrapper._performComponentUpdate (bundle.js:33379)   

,我相信它是与链接本身或路由器。当我按下连结它改变了路径“/登录”,但它不会改变的页面。我跟着这个教程(https://www.youtube.com/watch?v=W6m2qUCYLuk)和其他使用路由器来代替BrowserRouter但我遇到了一些错误,读到这里,你现在应该使用BrowserRouter代替。所以,我刚才因为我用BrowserRouter代替路由器做任何改变?

为路由器代码:

var React = require('react'); 
var ReactDOM = require('react-dom'); 

require('./css/index.css'); 

import {BrowserRouter, Route, browserHistory, Link} from 'react-router- 
dom'; 

var Login = require('./login'); 
var CreateNewAcc = require('./createNewAcc'); 

var App = React.createClass({ 
    render: function(){ 
     return(
      <BrowserRouter history={browserHistory}> 
       <div> 
        <Route path={'/'} component={MainComponent}/> 
        <Route path={'/login'} component={Login}/> 
        <Route path={'/createNewAcc'} component= 
{CreateNewAcc}/> 
       </div> 
      </BrowserRouter> 
     ); 
    } 
}); 

这是主要的代码(我缩短了它,并只增加相关的部分,其中的链接):

var MainComponent = React.createClass({ 
render: function(){ 
    return(
     <div className='wrapper'> 
      <div className='header'> 
       <img className='logo' src='./images/loop.png'></img> 
       <div className='loginDiv'> 
        <Link className='login' to={'/login'}>Logga in</Link> 
       </div> 
      </div> 

的package.json文件

"dependencies": { 
    "react": "^15.6.1", 
    "react-dom": "^15.6.1", 
    "react-router": "^4.2.0", 
    "react-router-dom": "^4.2.2" 
}, 
"devDependencies": { 
    "babel-core": "^6.25.0", 
    "babel-loader": "^7.1.1", 
    "babel-preset-es2015": "^6.24.1", 
    "babel-preset-react": "^6.24.1", 
    "css-loader": "^0.28.4", 
    "style-loader": "^0.18.2", 
    "webpack": "^3.5.4", 
    "webpack-dev-server": "^2.7.1" 
} 

在此先感谢!

+0

你有进口'Link'你'MainComponent'? – Panther

+0

@Panther的主要成分是在同一个文件在第一片段中的代码 – hugosod

回答

1

里面你MainComponent <Link>删除{}所以里面MainComponent:

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

<Link className='login' to="/login">Logga in</Link> 

你可以阅读更多的Link

相关问题