gpt4 book ai didi

javascript - React-Router RouteHandler 未定义

转载 作者:搜寻专家 更新时间:2023-11-01 04:51:36 25 4
gpt4 key购买 nike

我无法正确导入 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')
);

我不断收到错误:

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). Check the render method of App.

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

最佳答案

根据 upgrading guide 中的部分

RouteHandler 不见了。路由器现在会根据事件路由自动填充组件的 this.props.children

// v0.13.x
<RouteHandler/>

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

与所有其他从其父项接收子项的 React 组件一样,您可以使用标准的 React.cloneElement 模式将额外的 Prop 注入(inject)您提供的子项。

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

Link to complete Documentation

关于javascript - React-Router RouteHandler 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36532369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com