当 ObservableArray 项更改时重新渲染 Nativescript ListView
Re-render Nativescript ListView when ObservableArray item changes
这就是我在视图中呈现 cases
ObservableArray 的方式
<ListView [items]="cases" class="list-group" *ngIf="cases">
<ng-template let-case="item">
假设 cases
具有这些值:
cases = [{id: 1, name: "Sam"}, {id: 2, name: "Romio"}]
当我像这样更新第一个项目时,如何让我的 ListView 重新呈现或以某种方式更新视图?
cases[0]["name"] = "Michael"
你会想要在这里强制执行不变性。因此,如果您必须改变数组中的第一个对象,我会这样做。之后我会尝试使用传播运算符。
cases[0]["name"] = "Michael"
cases = [...cases];
这会将 cases
设置为一个数组的新实例,该数组应该更新列表。
您是否尝试在 NgZone 中应用更改?我用它来更新数组(不是 ObservableArray),相应的 RadListView 会自动更新。
this.ngZone.run(() => {
this.dummyService.addFile(this.file).subscribe(
(fileId) => {
this.folder.push(this.file);
},
(error) => {
this handleError(error);
});
});
这就是我在视图中呈现 cases
ObservableArray 的方式
<ListView [items]="cases" class="list-group" *ngIf="cases">
<ng-template let-case="item">
假设 cases
具有这些值:
cases = [{id: 1, name: "Sam"}, {id: 2, name: "Romio"}]
当我像这样更新第一个项目时,如何让我的 ListView 重新呈现或以某种方式更新视图?
cases[0]["name"] = "Michael"
你会想要在这里强制执行不变性。因此,如果您必须改变数组中的第一个对象,我会这样做。之后我会尝试使用传播运算符。
cases[0]["name"] = "Michael"
cases = [...cases];
这会将 cases
设置为一个数组的新实例,该数组应该更新列表。
您是否尝试在 NgZone 中应用更改?我用它来更新数组(不是 ObservableArray),相应的 RadListView 会自动更新。
this.ngZone.run(() => {
this.dummyService.addFile(this.file).subscribe(
(fileId) => {
this.folder.push(this.file);
},
(error) => {
this handleError(error);
});
});