1

我正在为 Angular 应用程序使用 Akita Statemanagement。并且我创建了两个具有 localForage 配置的存储,驱动程序为 IndexedDB,名称为 Akita,StoreName 为“AppDataStore”。存储键是存储的名称。

以下是版本、存储配置。

objectStore localforage configuration:
Store1:
---------------------------------------
@Injectable({ providedIn: 'root' })
@StoreConfig({ name: 'MyStore1' })
export class MyStore1 extends Store<MyStore1State> {
    constructor(private appConfig:AppConfig) {

        super(createInitialState(JSON.stringify(json)));
        localForage.config({
            driver: localForage.INDEXEDDB,
            name: 'Akita',
           storeName:'AppDataStore'
          });

        persistState({key:this.storeName,include:[this.storeName], storage: localForage });

    }
}

Store2:
---------------------------------------
@Injectable({ providedIn: 'root' })
@StoreConfig({ name: 'MyStore2' })
export class MyStore2 extends Store<MyStore2State> {
    constructor(private appConfig:AppConfig) {

        super(createInitialState(JSON.stringify(json)));
        localForage.config({
            driver: localForage.INDEXEDDB,
            name: 'Akita',
           storeName:'AppDataStore'
          });

        persistState({key:this.storeName,include:[this.storeName], storage: localForage });

    }
}

包.json

{
"localforage": "^1.7.3",
"@datorama/akita": "^4.6.0"
}

在执行任何更新操作时无法在 indexeddb 中更新并出现以下错误

错误 DOMException:无法在 'IDBObjectStore' 上执行 'put':function (root) { var _a; return _a = {}, _a[(/** @type {?} */ (keyOrRoot))] = upda...... } 无法克隆。在http://localhost:4200/vendor.js:222069:37 在 createTransaction ( http://localhost:4200/vendor.js:221822:9 ) 在http://localhost:4200/vendor.js:222053: 13 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke ( http://localhost:4200/polyfills.js:2815:26 ) 在 Object.onInvoke ( http://localhost :4200/vendor.js:79196:33 ) 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (http://localhost:4200/polyfills.js:2814:32)在 Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (http://localhost:4200/polyfills.js :2565:43 ) 在http://localhost:4200/polyfills.js:3299:34 在 ZoneDelegate.push ../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask ( http://localhost: 4200/polyfills.js:2848:31 ) 在 Object.onInvokeTask ( http://localhost:4200/vendor.js:79187:33 )

请任何帮助。

谢谢

4

0 回答 0