我遇到問題,從異步回調函數切換材料設計組件的狀態。chrome存儲:無法從回調函數更改組件狀態
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
});
}
WORKS。 此回調函數工作正常。
checked:boolean;
ngOnInit() {
setTimeout(() => {
this.checked = true;
}, 5000)
}
注意:肯定有一個問題與渲染。當我點擊一些與此完全相關的按鈕時,該組件會被正確地重新渲染。
如果向正在工作的回調中添加超時值,它還能工作嗎? –
是的,我只是忘了在這裏提到它。它工作得很好。 –