我在使用 Sencha Touch 数据存储和本地代理时遇到了一些问题。基本上,当一条记录从 store 中移除时,使用 store.remove(record) 方法,记录本身会从内存中移除,但是 store 中对它的 Id 引用并没有移除,所以当页面刷新时,我收到一个可爱的“未捕获的类型错误:无法读取未定义的属性‘isModel’”
这是商店的代码:
Ext.define("App.store.Data", {
extend: "Ext.data.Store",
requires: "Ext.data.proxy.LocalStorage",
config: {
model: "App.model.Data",
autoSync: true,
proxy: {
type: 'localstorage',
id: 'app-store'
}
}
});
这是数据编辑器页面上删除按钮的代码
onDeleteHomeworkCommand: function () {
var dataEditor = this.getDataEditor();
var currentData = dataEditor.getRecord();
var dataStore = Ext.getStore("Data");
dataStore.remove(currentData);
dataStore.sync();
this.activateDataList();
},
编辑:
这是调用 remove 方法之前数据存储的屏幕截图:
这是之后的一个:
请注意,ID 仍然保留在商店的列表中,这在刷新页面时给了我未定义的错误。