javascript - React/Redux - 在路由之间切换时内容渲染有延迟
问题描述
我是 reactjs/redux 的初学者,我有一个无法修复的错误。
从数据库呈现不同数据的 2 条路由之间存在错误。
/dashboard路由正在渲染正在获取 user.products 的组件
/products 路由正在渲染正在获取 all.products 的组件
所以基本上在仪表板路线上,您应该只看到您上传的那些产品,而在产品路线上,您可以看到所有用户上传的所有产品。
问题是,每当您在这两个路由之间切换时,内容都会延迟呈现。/products
当您为一小部分路由时,/dashboard
您将在仪表板上看到所有产品,然后它将正确重新呈现
Dashboard 组件呈现 ProductsList:
class ProductsList extends Component {
componentDidMount() {
this.props.fetchProduct();
}
render() {
return <div>{this.renderProducts()}</div>;
}
}
function mapStateToProps({ products }) {
return { products };
}
export default connect(
mapStateToProps,
{ fetchProduct },
)(ProductsList);
Products 组件呈现 AllProductsList:
class AllProductsList extends Component {
componentDidMount() {
this.props.fetchAllProduct();
}
render() {
return (
<div>{this.renderProducts()}</div>
);
}
}
function mapStateToProps({ allproducts }) {
return { allproducts };
}
export default connect(
mapStateToProps,
{ fetchAllProducts },
)(AllProductsList);
加载/dashboard
页面时,它props.products
显示为空数组,并在完成获取后填充此数组。
当我从一个页面路由/dashboard
到第一个/products
页面props.allproducts
时,首先填充了已获取的数据,完成products
后fetchAllProducts()
它会更改
解决方案
因此,对于两个 api,您持有相同的变量。这就是为什么在加载 AllProducts 组件时,您会在几分之一秒内看到用户的 productsList 数据,反之亦然。
秒的分数是 API 解决或拒绝的时间。或者应该说是 API 的挂起状态。
我希望这可以导致您的问题并解决问题。
请让我知道是否需要在帖子中添加任何内容。
推荐阅读
- wso2 - 传输错误:404 错误:在 WSO2 EI 6.1.1 中未找到
- jdbc - 无法从 jmeter 连接到 couchbase
- javascript - 使用 Node.js 检查所有权数据的状态
- python - ** 之后的 Django create() 参数必须是映射,而不是列表
- ssl - 明文证书如何编码为 PEM / CRT 格式?
- r - seqeconstraint中max.gap和window.size的区别
- ios - Intelllij Idea 无法检测到我的 iOS 设备
- python - 使用 pymongo 对 mongodb 的基本请求
- c# - 在 while 循环的第二次迭代中跳过了一段代码
- ios - 如何使用 CoreBluetooth 在 iOS 中扫描附近的蓝牙设备?