繁体   English   中英

React-Router RouteHandler未定义

[英]React-Router RouteHandler Undefined

我无法正确导入RouteHandler。 这是我的代码:

var React = require('react');
var ReactDOM = require('react-dom');
var ReactRouter = require('react-router');
var ActivityView = require('./ActivityView');

var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var Link = ReactRouter.Link;
var RouteHandler = ReactRouter.RouteHandler;
var hashHistory = ReactRouter.hashHistory;
var IndexRoute = ReactRouter.IndexRoute;

var App = React.createClass({
    render: function() {
        return (
            <div>
                <div className="navbar navbar-default">
                    <ul className="nav navbar-nav navbar-right">
                        <li><Link to="app">Dashboard</Link></li>
                    </ul>
                </div>

                <RouteHandler />
            </div>
        );  
    }   
});

ReactDOM.render(
    <Router history={hashHistory}>
        <Route name="app" path="/" component={App}>
            <IndexRoute component={ActivityView} />
        </Route>
    </Router>,
    document.getElementById('content')
);

我一直收到错误:

警告:React.createElement:type不应为null,undefined,boolean或number。 它应该是一个字符串(对于DOM元素)或一个ReactClass(对于复合组件)。 检查App的渲染方法。

如果我删除<RouteHandler />此警告消失并且导航栏呈现。 我在这里错误地导入RouteHandler吗?

根据升级指南中的部分

RouteHandler消失了。 路由器现在根据活动路由自动填充组件的this.props.children

// v0.13.x
<RouteHandler/>

// v1.0
{this.props.children}

与从其父级接收子级的所有其他React组件一样,您可以使用标准的React.cloneElement模式将其他道具注入您提供的子级。

通常应避免过度使用此模式,因为这会通过渲染树而不是路由树将路径组件紧密耦合,这会使重构变得更加困难。

链接到完整的文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM