Угловая ручка удаляет элементы из массива виртуальной прокрутки

avatar
user13505963
8 августа 2021 в 16:14
61
0
0

Здравствуйте, я использую виртуальный скроллер для загрузки таких элементов:

  onScroll() {
    if(this.posts){
      this.postsOffset++;
      this.apiService.getUsersPosts(this.profileLink,this.postsOffset.toString()).subscribe(res => {
        if(res){
           this.posts= this.posts.concat(res.data);
        }
      });
    }
  }

поэтому каждый раз, когда смещение прокрутки пользователя увеличивается

но теперь я хочу обработать удаление из него элементов, я пробовал так (эта функция вызывается сразу после удаления записи из БД)

  removePost(post) {
    this.posts= this.posts.filter(pst=> pst.id != post.id);
    this.user.posts-=1;
  }

в настоящее время он работает не так, как хотелось бы, из API всегда возвращаются недостающие элементы

я ищу способ сделать это без повторного запроса этих данных.

api (пружинная загрузка)

postRepository.findByUser_ProfileLink(userLink, PageRequest.of(offset, 3,Sort.by("createdAt").descending())).getContent().stream().map(s-> new PostResponseDTO(s)).collect(Collectors.toList());
Источник
user13505963
9 августа 2021 в 16:47
0

Я думаю о смещении виртуального скроллера по идентификатору сообщения, это сработает, но я не знаю, является ли это лучшей практикой.

Ответы (0)