非同期コールバック関数から重要なコンポーネントの状態を切り替える際に問題が発生しました。chrome storage:コールバック関数からコンポーネント状態を変更できません
HTMLマークアップ
<mat-slide-toggle
class="example-margin"
[color]="color"
[checked]="checked">
</mat-slide-toggle>
が 動作しない私は、コールバック関数は、変数を「this.checked」が、何らかの理由でそれが伝播していないなど、それは必要なすべてのコンテキストを取得することを確信しています材料設計コンポーネント。
checked:boolean;
ngOnInit() {
chrome.storage.local.get('isActive', (data) => {
console.log(data); // {isActive:true}
console.log(this); //context is visible
this.checked = data.isActive; //true
console.log(this.checked); //true
});
}
ワークス。 このコールバック関数は正常に機能します。
checked:boolean;
ngOnInit() {
setTimeout(() => {
this.checked = true;
}, 5000)
}
注:レンダリングの問題は間違いなくあります。これに完全に反するいくつかのボタンをクリックすると、このコンポーネントは正しくレンダリングされます。
作業中のコールバックにタイムアウト値を追加しても機能しますか? –
はい、私はここで言及するのを忘れました。それは完璧に正常に動作します。 –