diff --git a/packages/reactive-dict/migration.js b/packages/reactive-dict/migration.js index eb2b27a057..2f7ccb3b9f 100644 --- a/packages/reactive-dict/migration.js +++ b/packages/reactive-dict/migration.js @@ -4,8 +4,11 @@ ReactiveDict._migratedDictData = {}; // name -> data ReactiveDict._dictsToMigrate = {}; // name -> ReactiveDict ReactiveDict._loadMigratedDict = function (dictName) { - if (_.has(ReactiveDict._migratedDictData, dictName)) - return ReactiveDict._migratedDictData[dictName]; + if (_.has(ReactiveDict._migratedDictData, dictName)) { + const data = ReactiveDict._migratedDictData[dictName]; + delete ReactiveDict._migratedDictData[dictName]; + return data; + } return null; }; diff --git a/packages/reactive-dict/reactive-dict.js b/packages/reactive-dict/reactive-dict.js index d1c60d5acb..96c306e43c 100644 --- a/packages/reactive-dict/reactive-dict.js +++ b/packages/reactive-dict/reactive-dict.js @@ -210,6 +210,13 @@ export class ReactiveDict { } return didRemove; } + + destroy() { + this.clear(); + if (this.name && _.has(ReactiveDict._dictsToMigrate, this.name)) { + delete ReactiveDict._dictsToMigrate[this.name]; + } + } _setObject(object) { _.each(object, (value, key) => {