【发布时间】:2020-11-28 05:50:13
【问题描述】:
首先,我尝试使用以下代码解决此问题:Multiple params with React Router。但是有定义。在这种情况下我没有得到的东西。我对react-router-dom 还很陌生,我试图在 URL 中添加两个参数,如下所示:/:type/:projectid。
我已经像这样从一组数据中实例化了我的<Link>:
let projectRoutePlaceholder = `${ele.type}/project${this.props.index}`
return(
<Router>
<Link to={projectRoutePlaceholder}>
....
</Link>
</Router>
);
当我将鼠标悬停在我的内容上时,我的路由 URL 会显示在浏览器的左下方。在我的index.js 文件中,我设置了这样的路线:
ReactDOM.render(
<React.StrictMode>
<Router>
<Route exact path='/' component={App} />
<Route exact path='/index' component={ProjectIndex} />
<Route exact path='/info' component={Info} />
<Route exact path='/:type/:id' component={ProjectTemplate} />
</Router>
</React.StrictMode>,
document.getElementById('root')
现在,有两个问题我无法解决。
- 当我单击
<Link>元素时,它不会将我发送到ProjectTemplate组件,而是停留在<Link>元素上。当我强制(使用确切的路线刷新页面,例如:commercial/project0)时,它可以工作。 - 当我再次单击
<Link>元素时,params 被连接起来(例如:commercial/commercial/project0)
如何解决这两个问题?
【问题讨论】:
标签: javascript reactjs react-router