今天在用 angular 给子组件传值的时候,因为方法是在 ngAfterViewInit 里写的,为什么这么写呢,因为子组件总是会在加载的时候将 curPage 这人变量设为1,我又想改这个值,逼得我没办法只好写在 ngAfterViewInit 这个方法里了。
ngAfterViewInit(): void {
this.page.changePage(this.curPage);
}
好了这就是背景,但是执行这个的时候报错:
首先这只是个警告不是bug,但是看着很不舒服。百度后大概的意思是 curPage 这个组件的值和画面显示的值不一致了。
解决办法也很简单,就是把代码放到 setTimeout 中,执行异步属性更新
ngAfterViewInit(): void {
setTimeout(() => {
this.page.changePage(this.curPage);
});
}