javascript - React Router:组件未呈现,但 URL 已更新
问题描述
这种“组件未在 React Router 中渲染”类型的问题似乎是一个非常常见的问题。我浏览了所有内容,但找不到解决问题的方法。
这是我的代码的样子:
render(){
return(
<div>
<SearchBar searchBody={this.state.body}/>
<Route path = "/ranked/" component ={Ranked}></Route>
</div>
);
}
上面,创建了Ranked组件,根据子路径呈现不同的东西。(例如,localhost:3000/ranked/NBA)
function SearchDropDown(props){
return(
<div className = "searchDropDownItem">
<Link to={"/ranked/"+props.item.url}>{props.item.name}</Link>
</div>
)
}
上面是一个带有Link标签的不同组件,它根据 url 链接到/ranked/的不同子路径。
问题是假设我在localhost:3000/ranked/NBA上。
如果我通过链接标签重定向到localhost:3000/ranked/WNBA,则 url 会正确更新,但组件会刷新到自身。
从以前相关帖子的解决方案中,我已经尝试过
<Route exact path = "/ranked" ...
但它没有用。
这里可能是什么问题?我该如何解决?
解决方案
/route/:org
如果您希望在指定路线结束时收到道具,我建议您的路线看起来像这样。然后在您的Ranked
组件内部,您将使用它this.props.match.params.org
来获取您想要的组织,即。(NBA,WNBA)。在您的Ranked
组件中收到这些道具后,您就可以渲染该指定组织所需的任何内容。希望这有点道理。
推荐阅读
- maxima - 千里马不能用总和求解线性方程
- python - LabView 和 Python (SciPy) 中的 FFT 有什么区别
- java - 如何使用 PDFBox 在 Java 中的 PDF 文件中查找书签的外部链接
- tfs - 用于 TFS 构建的 NuGet 存储库
- android - 怎么关注服务器改图的结果
- c - C - 多条滑块
- java - Android SharedPreferences onSharedPreferenceChanged 没有被触发
- python - 投影深度的法线
- ruby - Windows 文件与 ruby 的关联
- php - 如何在 zf2 中执行预选