2017-10-28 20 views
0

私は一般的に反応してプログラミングするのが比較的新しいですし、いつか解決しようとしていた問題が現れましたが、解決策を見つけることができません。私が持っている の問題は、私はエラーを取得する(すなわち、第2の最後のコードスニペットで見つけることができます)私は「ログイン」リンクを押すと、必ずということであるReactJS Uncaught 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)   

と私はそれがリンクとは何かを持っていると信じてそれ自身またはルーター。リンクを押すとパスが「/ login」に変更されますが、ページは変更されません。私はこのチュートリアル(https://www.youtube.com/watch?v=W6m2qUCYLuk)に続き、BrowserRouterではなくRouterを使用しましたが、いくつかのエラーが発生しました。ここで、代わりに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" 
} 

ありがとうございます!あなたのMainComponent <Link>インサイド

+0

の詳細を読むことができますが、 ''あなたMainComponent'でLink'を輸入していますか? – Panther

+0

@Panther主なコンポーネントは、最初のスニペットのコードと同じファイルにあります – hugosod

答えて

1

MainComponent内ので{}を削除:

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

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

あなたはLink

関連する問題