当 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);
        });
     });