Sencha Touch データストアと localproxy に問題があります。基本的に、store.remove(record) メソッドを使用してレコードがストアから削除されると、レコード自体はメモリから削除されますが、ストア内のレコードへの Id 参照は削除されないため、ページが更新されると、素敵な「Uncaught TypeError: Cannot read property 'isModel' of undefined」を受け取ります
ストアのコードは次のとおりです。
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 メソッドが呼び出される前のデータ ストアのスクリーンショットを次に示します。
そして、これが次の1つです。
Id がまだストアのリストに残っていることに注意してください。これにより、ページが更新されたときに未定義のエラーが発生します。