【发布时间】:2017-05-04 09:48:38
【问题描述】:
我正在学习 MeteorJS、React 和 React-Router,我在通过路由器传递 URL 中的参数时遇到了困难。我已经搜索了答案,但我找不到我做错了什么:
在我的 Routes.jsx 文件中('lists' 是我的 MongoDB 集合):
render: function() {
return (
<Router history={browserHistory}>
<Route path='/' component={Navbar}>
<Route path='/home' component={Home} />
<Route path='/register' component={Register} />
<Route path='/login' component={Login} />
<Route path='/listpages/:listId' component={ListPages} />
</Route>
</Router>
);
}
在我的 MyLists.jsx 文件中(在组件内部):
renderLists() {
return this.data.lists.map((myList) => {
return
<li key={myList._id}>
<Link to='listpages' params={{ listId: myList._id}}>
{myList.name}
</Link>
</li>;
});
},
render() {
return (
<div>
<h2>Lists</h2>
<AddList />
<ul>
{this.renderLists()}
</ul>
</div>
);
}
当我单击 ListPages 的链接之一时,我收到控制台错误:
Warning: Location "listpages" did not match any routes
此外,订单项中嵌入了正确的 listId,而不是 URL:
<li>
<Link to="listpages" params={listId: "qksabGvfeuf5PdaJv"} onlyActiveOnIndex=false...>
<a params={listId: "qksabGvfeuf5PdaJv" className="" style={}...>Inbox</a>
</Link>
</li>
但是如果我把这个参数去掉:
<Route path='/listpages' component={ListPages} />
然后它按预期工作并显示 ListPages 的内容(现在它只是一个标题,看看我是否到达那里)。所以 ListPages 确实存在,但在我传递参数时不存在。我做错了什么?
提前感谢您提供的任何帮助!
【问题讨论】:
标签: mongodb meteor reactjs react-router