【发布时间】:2026-01-07 00:10:01
【问题描述】:
新反应和反应路由器。
我试图理解这个例子:
https://github.com/ReactTraining/react-router/blob/1.0.x/docs/API.md#components-1
但是 this.props 从不包含主栏或侧边栏。我的代码:
Main.js
ReactDOM.render(
<Router>
<Route path="/" component={App2}>
<Route path="/" components={{main: Home, sidebar: HomeSidebar}}/>
</Route>
</Router>,
document.getElementById('content')
);
App2.js
class App2 extends React.Component {
render() {
const {main, sidebar} = this.props;
return (
<div>
<Menu inverted vertical fixed="left">
{sidebar}
</Menu>
<Container className="main-container">
{main}
</Container>
</div>
);
}
}
export default App2;
Home.js
import React from 'react';
class Home extends React.Component {
render() {
return (
<div><h1>Home</h1></div>
);
}
}
export default Home;
HomeSidebar.js
class HomeSidebar extends React.Component {
render() {
return (
<div>
<p>I'm a sidebar</p>
</div>
);
}
}
export default HomeSidebar;
我将电子与反应开发工具一起使用。每当我调试时,this.props 既不包含主边栏也不包含边栏。知道为什么会这样吗?
我也尝试过使用 IndexRoute,但它似乎不支持 components 属性。
我尝试过的其他方法
ReactDOM.render(
<Router>
<Route component={App2}>
<Route path="/" components={{main: Home, sidebar: HomeSidebar}}/>
</Route>
</Router>,
document.getElementById('content')
);
ReactDOM.render(
<Router>
<Route path="/" component={App2} components={{main: Home, sidebar: HomeSidebar}}>
<Route path="admin" components={{main: Admin, sidebar: AdminSidebar}}/>
</Route>
</Router>,
document.getElementById('content')
);
【问题讨论】:
-
我删除了关于具有相同路径的路线的答案,因为它对您没有帮助。但这就是我前段时间解决类似问题的方法。
标签: javascript reactjs ecmascript-6 react-router