Nativescript - 应用程序恢复后丢失数据绑定

Nativescript - Lost databinding after app resume

我有一个 View,它通过一个 TextField 和一个 Switch 绑定到一个 ViewModel(继承自 Observable)。

当我更改值时,所有值都完美绑定,我可以看到我的新值。

但如果我转到主屏幕,然后返回应用程序,这些值将被删除。

视图是像客户 CRUD 一样的基本形式。

这是 XML :

<Page xmlns="http://schemas.nativescript.org/tns.xsd"
        loaded="loaded">
<!-- ... -->
  <TextView text="{{ valueA }}" />
<!-- ... -->
  <Slider value="{{ valueB }}" minValue="1950" maxValue="2016" />
</Page

这是代码隐藏:

let viewModel: ViewModel;
let page: Page;

export function loaded(args: EventData) {
    page = <Page>args.object;

    setTimeout(function() {
        viewModel = new ViewModel();
        page.bindingContext = viewModel;
    }, 0);
}

你知道为什么我丢失了我的表单数据吗?

最有可能的是,当您返回应用程序时,loaded 事件会在您构建视图模型的位置触发。您应该尝试在不同的页面事件 (navigatedTo) 中构建或使用 "application-settings" 模块保存数据。然后在构建可观察视图模型时从应用程序设置中读取值。希望这有帮助。

https://docs.nativescript.org/ApiReference/application-settings/HOW-TO.html