根据某个属性跳过实体

Skip entity based on a certain attribute

我正在尝试跳过一个实体。我试图通过从 idAttribute 函数返回 undefined 来做到这一点,但它不会跳过。这可能吗?

var { schema, normalize } = require("normalizr")

// Define your article 
const article = new schema.Entity('articles', undefined, {
  idAttribute: value => value.id
});

const reply = {
  articles: [ { id:1, commenter:'foo' }, { id:2, commenter:'bar' }, { dummy:true } ]
}

const normalizedData = normalize(reply, { articles: [ article ] });

console.log('normalizedData.entities:', JSON.stringify(normalizedData.entities));

这为我们提供了 normalizedData.entities 的数据:

articles: {
  1: {commenter: "foo", id: 1}
  2: {commenter: "bar", id: 2}
  undefined: {dummy: true}
}

但是我想跳过任何没有密钥 id 的条目。这是我实际案例的一个非常简化的案例。

Normalizr 不包含针对您的特定案例的复杂性。在规范化过程之后,您必须将它们过滤掉作为另一个步骤。