簡體   English   中英

反應路由器 <Link /> 不工作

[英]React Router <Link /> not working

我可以很好地加載我的組件及其子組件,但是<Link/>組件有問題。 我試圖在我的主要應用程序組件中使用它,如下所示:

"use strict";
var React = require('react');
var Navigation = require('./navigation');
var UserActions = require('../actions/userActions.js');
var UserStore = require('../stores/userStore.js');

var App = React.createClass({

    getInitialState: function(){
        return { currentUser: "" }
    },

    componentWillMount: function(){
      var user = UserStore.getUser();
      this.setState({currentUser: user })
    },

    render: function(){
       return (
            <div>
                <div id="nav-container">
                  <Navigation user={this.state.currentUser}/> 
                </div>
                <div id="main-content"></div>
            </div>
        );
    }
});

module.exports = App;

這是我的導航組件的相關部分。 我可以手動導航到該URL,然后一切正常。

"use strict";
var React = require('react');
var Link = require('react-router').Link;


var Navigation = React.createClass({
   render: function(){
      return (
      {(this.isAdmin())?
          <div className="nav-parent">
              <p onClick={this.showChildren}>ADMIN TOOLS</p>
                 <ul className="child-nav">
                     <li><Link to={'admin/logos'}>Logos</Link></li>
                  </ul>
           </div>
         :null}
        )
   }
})

這是路線

     <Route path="/admin" component={require('./components/admin/admin.js')}>
         <Route path="logos" component={require('./components/admin/logos.js')}></Route>
  </Route>

單擊“生成的響應”鏈接時,控制台中出現以下錯誤:

bundle.js: Uncaught TypeError: Cannot read property 'push' of undefined

手動導航到url可以正常工作。

嘗試將您的Route聲明更改為:

<Route path="/admin" component={require('./components/admin/admin.js')}>
    <Route path="logos" component={require('./components/admin/logos.js')} />
</Route>

和您的鏈接到:

<li><Link to={'/admin/logos'}>Logos</Link></li>

如果這不起作用,請在控制台的錯誤中單擊更多詳細信息箭頭,然后檢查錯誤發生的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM