reactjs - 使用 Redux 和 React Router 在 React 应用程序的浏览器中重新加载 url 导致存储状态未定义
问题描述
我正在使用带有 react-redux 和 react-router 的 create-react-app。
<SingleProduct />
被定义为
function SingleProduct(props){
let id= props.match.params.id
let products = props.products
return (display the matching product properties)
}
在<SingleProduct />
渲染的时候,是依赖于通过路由接收到的id。然后它在里面搜索 idprops.products
以获取特定的产品属性。
<SingleProduct />
像这样连接到 redux 商店:
function mapStateToProps(state){
return {
products: state.products}
}
当我刷新浏览器时,props.products
不再识别,并且尝试读取未定义的属性时出现错误。
我怎么解决这个问题?是路由问题(客户端路由)还是其他问题?我弹出了我的应用程序,尝试调整 Webpack 配置以解决客户端路由问题,但没有成功。请注意,我正在通过 REST API 获取产品。任何帮助表示赞赏。
解决方案
您需要在项目中使用 localstorage 或 redux-persist 以在重新加载 url https://www.npmjs.com/package/redux-persist后保留存储的状态数据
推荐阅读
- python - 从字符串中,如何在 rgb 之后的括号之间提取值?
- html - 网站在服务器上看起来比在本地主机上更大
- flutter - 如何设置垂直滚动角度设置
- java - Java Spring Boot - JPA:StackOverflowError 与 @ManyToMany 关系
- python - 从 numpy where() 转换数据
- reactjs - React POST 请求是在没有 cookie 的情况下发送的
- python - 在 python 中比较两个图像时,我想获得 SSIM
- go - Golang:忽略标志参数的位置
- c - 如果元素出现超过 n 次,则删除该元素的出现 - realloc():下一个大小无效
- r - 我应该在哪里对条形图重新排序以使条形组与数据框的顺序相同