0

dataStore.find()每次都用相同的参数调用。当前的适配器是HttpAdapter. 但是,在初次调用之后,它似乎无法在缓存中找到数据并再次调用 API。即使数据实际上正在缓存中,也会发生这种情况,js-data 似乎无法找到它:

每次添加相同的记录

4

1 回答 1

1

我从 API 返回的数据不包含id属性。当 js-data 在调用 后查看缓存时dataStore.find(),它会查找匹配的项目idAttribute,这是id默认情况下的。因此,每次请求数据时,都会将其添加到缓存中,但无法在后面找到。idAttribute为了解决这个问题,我在我的映射器中添加了适当的:

this.mapper = this.dataStore.defineMapper('community', {
  schema: this.communitySchema,
  endpoint: 'cm',

  // We don't have an 'id' property so the cached records won't be found.
  // Thus, we set the 'idAttribute' to 'code', which is the unique identifier
  // for communities.
  idAttribute: 'code'
});
于 2017-10-31T23:24:54.297 回答