问题描述
这是我的角度分量 -
export class UserListComponent implements OnInit,OnDestroy {
private _subscriptions: Subscription;
private _users: User[] = [];
private _clickableuser: boolean = true;
constructor(
private route: ActivatedRoute,) { }
ngOnInit() {
const source = interval(1000);
const users = this.route.snapshot.data['users'] as IUserInterface[];
this._subscriptions = source.subscribe(() => this._users = users.map(user => new User(user)))
}
ngOnDestroy() {
this._subscriptions.unsubscribe();
}
我得到了数据,但是间隔没有刷新就没有设置它。
解决方法
ngOnInit()
仅在首次创建组件时被调用一次。这意味着您的活动路线只会被读取一次,这也意味着您的 users
数组始终是相同的。
我猜您每次更新路线数据时都在尝试更新您的组件。为此,您需要订阅 this.route.data
(注意我没有包括 snapshot
)。它看起来像这样:
this._subscriptions = this.route.data.subscribe(data => this._users = data['users'].map(user => new User(user));