Ember Data: в каком крайнем случае элемент ManyArray может быть нулевым? - PullRequest
0 голосов
/ 11 января 2019

Я запутался в ошибке, записанной в отчете об ошибках: TypeError: Cannot read property 'isArchived' of null

Ошибка генерируется в вычисляемом свойстве с использованием макроса filter:

// app/templates/components/items-table.hbs

import Component from '@ember/component';
import { get } from '@ember/object';
import { filter } from '@ember/object/computed';

export default Component.extend({
  filteredItems: filter('items.@each.isArchived', function(item) {
    return !get(item, 'isArchived');
  }),
});

Свойство items заполняется ManyArray отношения Ember Data hasMany. Настройка выглядит следующим образом:

// app/routes/building.js

export default Route.extend({
  model({ buildingId }) {
    return this.get('store').findRecord('building', buildingId);
  }
});
// app/templates/building.hbs

{{items-table
  items=model.items
}}
// app/models/building.js

import DS from 'ember-data';

export default Model.extend({
  items: hasMany('item'),
});
// app/models/items.js

import DS from 'ember-data';

export default Model.extend({
  building: DS.belongsTo('building'),
});

Я видел это с ember@2.18.2 и ember-data@2.16.3.

"Вы столкнулись с ошибкой в ​​Ember Data, поскольку запись в ManyArray не должна быть null" также будет правильным ответом, если она содержит аргументы, почему это следует считать ошибкой. В этом случае было бы замечательно указывать на документацию или официальные заявления сопровождающих.

Этот вопрос в основном не касается исправления ошибки в моем приложении. Это было зарегистрировано только один раз и не критично. Мне просто любопытно, если я буду учитывать этот крайний случай при написании кода, который имеет дело с ManyArray s.

...