首页 > 解决方案 > 如果您已经访问过页面,则分页不会获取数据

问题描述

我已经为表格实现了分页。每次我更改页面时,都会从后端获取新数据并存储到本地 Store(Ngrx) 中,然后我通过选择器(Ngrx) 选择这些数据并根据 pageSize 和页面拆分成块。

例如:

const dataFromStore = [1,2,3,4,5,6,7,8,9,10]
const pageSize = 5;
const page = 1;
tableDisplays = [1,2,3,4,5]

我想知道如何检查我是否已访问过页面,以便不再获取数据,因为我将其存储在 Store(Ngrx) 中。下面的图片只是关于我在页面上旅行的控制台结果。

在此处输入图像描述

我一直在考虑ReplaySubject和排列商店编号访问页面的位置。每次我访问页面时都会调用next(page)assingsubscribe数组new Set()以获得唯一的页面。

任何想法,将不胜感激。

标签: javascriptangularrxjsngrx

解决方案


这就是我解决这个问题的方法

  1. 首先为商店访问的页面创建了 Set:const arrayVisitedPages = new Set();
  2. 然后我检查如果 Set 没有这个页面,然后从存储中获取数据:

`

if(!this.visitedPagesSet.has(page)) {
       this.visitedPagesSet.add(page);
       * fetch data *
 };

差不多就是这样。


推荐阅读