我对错误报告记录的错误感到困惑:
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属性由Ember Data hasMany
关系的ManyArray
填充。设置如下所示:
// 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的代码时考虑这种情况,我只是好奇。