これは悪名高いエラーです。これは開発者の間でかなりの「フォロー」がありますが、デバッグするのは非常に難しいことも知られています。このようなログは、このようなログ"チェックした後に式が変更されました"というエラーをデバッグする方法?
PersonalSituationComponent.html:3 ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'true'. Current value: 'false'.
at viewDebugError (core.es5.js:8434) [angular]
at expressionChangedAfterItHasBeenCheckedError (core.es5.js:8412) [angular]
at checkBindingNoChanges (core.es5.js:8576) [angular]
at checkNoChangesNodeInline (core.es5.js:12455) [angular]
at checkNoChangesNode (core.es5.js:12429) [angular]
at debugCheckNoChangesNode (core.es5.js:13209) [angular]
at debugCheckRenderNodeFn (core.es5.js:13149) [angular]
at Object.eval [as updateRenderer] (PersonalSituationComponent.html:3) [angular]
at Object.debugUpdateRenderer [as updateRenderer] (core.es5.js:13131) [angular]
at checkNoChangesView (core.es5.js:12251) [angular]
at callViewAction (core.es5.js:12618) [angular]
at execEmbeddedViewsAction (core.es5.js:12596) [angular]
at checkNoChangesView (core.es5.js:12250) [angular]
at callViewAction (core.es5.js:12618) [angular]
本当に役に立たないです。 htmlの3行目に多くの行がある場合、その行にブール値はありませんが、はです。コンポーネントの開始タグは、さまざまな場所(それぞれ.tsおよび.html)にあります。 。
どのようにエラーをデバッグし、すべてのブール値をハードコードされた値に置き換えずに、それぞれを個別にチェックしますか? (そしてあなたが入力している間、私はそれをするつもりです)。
詳細(まだ見えない)詳細記事。 :)エラーがスローされ、そこから後方に移動しようとする直前に、core.es5.jsの行8406にあります。現在まで最も奇妙なことは、コンポーネントが使うブール値の大部分がゲッターであることです。これはChangeDetectionをトリガーする必要がありますか?/ – pop