【问题标题】:"Link To" not working with React 0.14.5 and React Router 2.0.0.rc4“链接到”不适用于 React 0.14.5 和 React Router 2.0.0.rc4
【发布时间】:2016-01-02 15:59:37
【问题描述】:

在我尝试将“链接到”组件而不是硬编码的锚元素添加到我的导航之前,我的代码运行良好。

我的控制台返回以下错误:

Warning: React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components).Uncaught 

Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined.

这是我的标题导航代码:

"use strict";

var React = require('react');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Link = Router.Link;

var Header = React.createClass({
render: function() {
return (
  <nav className = "navbar navbar-default">
    <div className = "container fluid">
      <Link to = "/" className = "navbar-brand">
        <img src = "images/pluralsight-logo.png"/>
        </Link>
        <ul className = "nav navbar-nav">
          <li><Link to = "/app">Home</Link></li>
          <li><Link to = "/authors">Authors</Link></li>
          <li><Link to = "/about">About</Link></li>
        </ul>
      </div>
    </nav>
  );
 }
});

module.exports = Header;

还有我的路由页面:

"use strict";

var React = require('react');
var ReactDOM = require('react-dom');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var Home = require('./components/homePage');
var App = require('./components/app');
var About = require('./components/about/aboutPage');
var Authors = require('./components/authors/authorPage');
var IndexRoute = require('react-router').IndexRoute;
var createHashHistory = require('history').createHashHistory;
var history = createHashHistory({
queryKey: false
});

ReactDOM.render((
<Router history = {history}>
<Route path="/" component={App}>
  <IndexRoute component= {Home} />
  <Route path="about" component={About}></Route>
    <Route path="authors" component={Authors}></Route>
</Route>
</Router>
), document.getElementById('app'));

【问题讨论】:

    标签: javascript hyperlink reactjs components react-router


    【解决方案1】:

    Link 组件不是Router 的一部分。

    改变

    var Link = Router.Link;
    

    var Link = ReactRouter.Link;
    

    【讨论】:

    • 非常感谢大家的关注,这已经解决了!
    【解决方案2】:

    你的第一个 li 没有被关闭。您关闭了两次链接。

    【讨论】:

    • 感谢 Zader,我确实修复了这个问题,但我的编辑没有保存。无论如何,问题仍然存在:/。
    猜你喜欢
    • 2019-08-15
    • 1970-01-01
    • 2018-11-17
    • 2016-10-26
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    相关资源
    最近更新 更多