首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不覆盖的情况下加载数据?

如何在不覆盖的情况下加载数据?
EN

Stack Overflow用户
提问于 2019-06-11 02:00:34
回答 1查看 53关注 0票数 0

在我的情况下,我的页面上有出版物,当我滚动时,我需要加载其他出版物。问题是,当我的新出版物到达时,我失去了我的旧出版物。

我的服务:

代码语言:javascript
复制
GetPiins(page: string): Observable<ListPiinsResponse>  {
  const limit = '8';
  const piins = this.http.get<ListPiinsResponse>(
      `${this.baseUrl}/piins/FollowerAndFriend`, {
        params: {
          limit: limit, page
        }
  });
  return piins;
}

在组件的my ngInit中:

代码语言:javascript
复制
this.store$.dispatch(new PiinsFeatureStoreActions.LoadCurrentUserPiins('1'));

this.piins$ = this.store$.pipe(
  select(PiinsFeatureStoreSelectors.selectAllPiinsFeatureItems),
  filter(value => value !== undefined),
);

当我检测到滚动时,我的方法是:

代码语言:javascript
复制
onScroll() {
  this.counterPage += 1;
  this.store$.dispatch(new 
  PiinsFeatureStoreActions.LoadCurrentUserPiins(
   String(this.counterPage)
  ));
}

这是在我的减速器里:

代码语言:javascript
复制
    case ActionTypes.LOAD_PIINS_SUCCESS:{
      const newPiins = featureAdapter.addAll(action.payload, {
        ...state, // I think here I need to concat this value 
        isLoading: false,
        error: null
      });

      return newPiins;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-11 02:55:44

只需合并两个数组

代码语言:javascript
复制
this.oldData= [ ...oldData, ...newData];

这意味着最初你的oldData必须是一个空数组。

代码语言:javascript
复制
public oldArray:SomeInterface[] = [];

应该能起到作用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56531340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档