angular / angular/components

menu: trigger ExpressionChangedAfterItHasBeenCheckedError aria-expanded: null in OnPush component

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

説明

#### What is the expected behavior?
Error should not occur

#### What is the current behavior?
Repeatedly and quickly clicking on menu trigger button causes error

#### What are the steps to reproduce?
[StackBlitz](https://stackblitz.com/edit/angular-stgyux)
Click on menuTrigger repeatedly -> error shows in console

#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 7.1.0
Angular Material 7.1.0
Chrome Browser

#### Is there anything else we should know?
ChangeDetection: OnPush

ERROR
Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'aria-expanded: true'. Current value: 'aria-expanded: null'.

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

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

調査の方向性

Angular と Angular Material 7.1.0 を使用するリンク先の StackBlitz の再現から始め、コンソールを監視しながら OnPush コンポーネント内のメニュー・トリガーを繰り返しクリックします。メニュー・トリガーの aria-expanded の変更を追跡し、チェックされた値が null に変わる理由を特定します。再現で ExpressionChangedAfterItHasBeenCheckedError が報告されなくなれば完了です。

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

評価

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

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

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