angular / angular/components

Virtual Scrolling stalls when scrolling via keyboard with large set of complex data

オープン
#14,765 コメント 5 件 リアクション 7 件 担当者 0 名 GitHub で見る
area: cdk/scrolling P3
主要言語
TypeScript
スター
25k
フォーク
6.8k
平均マージ
1日 8時間
マージ済み PR(30日)
91

説明

#### Bug, feature request, or proposal: Bug

#### What is the expected behavior?
When scrolling down the list by holding down the up or down arrow key, the list should scroll smoothly all the way down to the end

#### What is the current behavior?
When scrolling down the list by holding down the up or down arrow key, at random times and seemingly random circumstances, the scrolling behavior stalls. I believe the focus is being lost on the list for whatever reason as, if you click on the list and press the arrow key, scrolling resumes as normal.

#### What are the steps to reproduce?
StackBlitz [here](https://stackblitz.com/edit/angular-material-yhc71v). Click on the list and press and hold the down arrow key. It may take a couple attempts, but eventually it should stall.

#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Reproduced in Chrome 71.0.3578.98 and IE 11. Could not reproduce in Firefox 64.0.

|Package|Version|
|---|---|
|@angular/animations|7.2.0|
|@angular/cdk|7.2.1|
|@angular/common|7.2.0|
|@angular/compiler|7.2.0|
|@angular/core|7.2.0|
|@angular/forms|7.2.0|
|@angular/http|7.2.0|
|@angular/material|7.2.1|
|@angular/platform-browser|7.2.0|
|@angular/platform-browser-dynamic|7.2.0|
|@angular/router|7.2.0|
|core-js|2.6.1|
|rxjs|6.3.3|
|rxjs-compat|6.3.3|
|zone.js|0.8.26|

#### Is there anything else we should know?
Resource-bound maybe?

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

リンクされた StackBlitz の再現から始め、下矢印を押し続けると Chrome または IE では最終的に停止する一方、Firefox では影響を受けないことを確認します。その再現をもとに、仮想スクロールリストのキーボード操作とフォーカス動作を追跡します。大規模で複雑なデータのリストが矢印キーで末尾まで連続的にスクロールし、回帰が適切なテストでカバーされれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
angular, typescript
領域
frontend, performance
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。