sReceiving:构建后 "Unrecognized alias: proxy.sessionStorage"

sReceiving: "Unrecognized alias: proxy.sessionStorage" after Build

我构建了项目,但收到错误消息,我的应用无法识别会话存储。

  proxy: {
    type: 'sessionstorage',
    id: 'sessionTimeline',
    reader: {
      type: 'json',
      rootProperty: 'query'
    }
  }

当我将类型更改为 "memory" 时,我的代码工作正常,但类型必须是会话存储,因为我想在刷新页面时保存商店中的所有数据。

Uncaught Error: [Ext.createByAlias] Unrecognized alias: proxy.sessionstorage at Ext.Inventory.instantiateByAlias (app.js?_dc=1493205201288:13481) at Object.createByAlias (app.js?_dc=1493205201288:5423) at constructor.applyProxy (app.js?_dc=1493205201288:85923) at constructor.setter [as setProxy] (app.js?_dc=1493205201288:9021) at constructor. (app.js?_dc=1493205201288:9000) at constructor.createImplicitModel (app.js?_dc=1493205201288:86564) at constructor.applyFields (app.js?_dc=1493205201288:85893) at constructor.setter [as setFields] (app.js?_dc=1493205201288:9021) at Ext.Configurator.configure (app.js?_dc=1493205201288:9610) at constructor.initConfig (app.js?_dc=1493205201288:11119)

我不知道出了什么问题,因为我的应用程序可以在构建之前识别会话存储,我尝试通过多种方式修复此错误,但真的很难,因为 app.js 很紧凑。

我的会话存储代码:

Ext.define('ES.store.Timeline', {
  extend: 'Ext.data.Store',
  alias: 'store.timeline',
  storeId: 'timeline',
  fields: [{
    name: 'vid',
    type: 'int'
  }, {
    name: 'time',
    type: 'string'
  }, {
    name: 'lat',
    type: 'float'
  }, {
    name: 'lng',
    type: 'float'
  }, {
    name: 'address',
    type: 'string'
  }, {
    name: 'dir',
    type: 'string'
  }, {
    name: 'vel',
    type: 'string'
  }, 'hidden'],
  pageSize: 500,
  autoSync: true,
  sorters: [{
    property: 'time',
    direction: 'DESC'
  }],
  data: {
    query: []
  },
  proxy: {
    type: 'sessionstorage',
    id: 'sessionTimeline'
  },
  filters: [{
    property: 'hidden',
    value: false
  }]
});

我正在视图上调用会话存储:

...

    store: {
        type: 'timeline'
    },

...

我该如何修复该错误?谢谢。

您的商店缺少需求:

requires:[
    'Ext.data.proxy.SessionStorage'
]

这告诉 ExtJS 在构建商店之前加载文件 data/proxy/SessionStorage.js。只有在加载data/proxy/SessionStorage.js文件时,才会注册别名proxy.sessionstorage,代理工厂才能正确实例化代理。