reactjs - 当组件最初未呈现时,如何通过 React-Router 4 中的 URL 访问组件?
问题描述
希望标题有意义。
我的 React 应用登陆页面由三个组件组成——标题、主要内容区域,然后是底部的产品列表。单击产品时,会在全屏视图中将类别列表呈现为产品的子项,并将产品名称附加到 URL。
由于我使用的产品数量众多,我最初只显示切片数组中的六个产品。通过单击按钮显示下一个或前六个产品,通过更改状态来更改切片值。当我访问最初六个产品之一的 URL 时,即 myurl.com/prod1,它成功路由。但是,如果我尝试访问第二批产品之一的 URL,比如 myurl.com/prod7,那么它不会路由并将我留在登录页面。
处理这种结构的正确方法是什么?
非常感谢。
解决方案
您可以在 componentDidUpdate 方法上将先前路由的路径名与活动路由的路径名进行比较,并在 url 有任何更改时获取数据。
例如;
componentDidUpdate(prevProps) {
if(prevProps.location.pathname !== this.props.location.pathname){
fetchData()
}
}
PS:您应该从 react-router-dom 包中导入 withRouter hoc 以访问路由器道具。
推荐阅读
- jwt-auth - Express Gateway - 远程身份验证服务器的 JWT 验证策略 checkCredentialExistence
- angular - 将所有响应合并到来自 forEach 的单个可观察对象?
- python - 无法激活虚拟环境 (Windows)
- php - 如何使用php从表中获取输入类型值
- java - 滚动到元素 selenium java
- javascript - Google Script UrlFetchApp“方法”:“删除”不起作用
- unity3d - 销毁对象并在 Canvas 中间实例化它
- c++ - 如何将txt文件中的一行分隔到组件C++
- mule - 如何将字节数组转换为mule中的多部分文件
- r - R - 使用父子关系表计算总数