使用 React-router 时,我想将 Link 的位置传递给 Route
When using React-router, I want to pass location of Link to Route
如果我在子组件中设置 Link 如下:
<Link className="article-link" to={`/newsarticle/${title}`}>
我希望路由在 App.js 组件中反映:
<Route path=`/newsarticle/${title}` component={NewsPage}/>
这样做的原因是,如果文章页面在浏览器中刷新,我希望它呈现加载的最后一个“/newsarticle/${title}”,而不是只呈现“/newsarticle/” ' 组件中没有任何数据传递给 newsarticle。
也许这做不到,我需要确保在服务器端进行路由。
让我们假设您已经声明了这样的路由
<Route path="/article/:id" component={Article} />
并且您已经定义了 link <Link to="/article/4334">my article</Link>
,点击它会加载路由,为了访问传递给路由的参数,您可以尝试这种方式
/* in Class based component */
class Article extends React.Component{
constructor(props){
console.log(this.props.match.params.id) //where you access the id
}
/* rest of the code */
}
/* in functional Component by using hooks */
import {useParams} from 'react-router-dom'
function Article(){
let params = useParams()
console.log(params.id)
}
我认为我没有解释问题是我正在将一个组件 "Article" 映射到我有路由的组件 "Articles" 上:
<Route path=`/newsarticle/${title}` component={Articles}/>
然而 Link 在第三个组件中,它将我们带到相关文章/${title}。
我想要实现的是在刷新页面时 URL 保留为 article/${title} 和最后显示的标题,从而呈现呈现的最后一篇文章的内容。
如果我在子组件中设置 Link 如下:
<Link className="article-link" to={`/newsarticle/${title}`}>
我希望路由在 App.js 组件中反映:
<Route path=`/newsarticle/${title}` component={NewsPage}/>
这样做的原因是,如果文章页面在浏览器中刷新,我希望它呈现加载的最后一个“/newsarticle/${title}”,而不是只呈现“/newsarticle/” ' 组件中没有任何数据传递给 newsarticle。
也许这做不到,我需要确保在服务器端进行路由。
让我们假设您已经声明了这样的路由
<Route path="/article/:id" component={Article} />
并且您已经定义了 link <Link to="/article/4334">my article</Link>
,点击它会加载路由,为了访问传递给路由的参数,您可以尝试这种方式
/* in Class based component */
class Article extends React.Component{
constructor(props){
console.log(this.props.match.params.id) //where you access the id
}
/* rest of the code */
}
/* in functional Component by using hooks */
import {useParams} from 'react-router-dom'
function Article(){
let params = useParams()
console.log(params.id)
}
我认为我没有解释问题是我正在将一个组件 "Article" 映射到我有路由的组件 "Articles" 上:
<Route path=`/newsarticle/${title}` component={Articles}/>
然而 Link 在第三个组件中,它将我们带到相关文章/${title}。
我想要实现的是在刷新页面时 URL 保留为 article/${title} 和最后显示的标题,从而呈现呈现的最后一篇文章的内容。