【问题标题】:Is it possible to normalizr string?是否可以规范化字符串?
【发布时间】:2018-04-16 20:38:07
【问题描述】:

我正在使用normalizr。我尝试规范化字符串,但我没有弄明白。

const mails = [
  {
    "id": "mailId1",
    "conversationId": "conversationId1",
    "content": "Hi",
    "sender": {
      "emailAddress": { name: 'Jack', address: 'jack@example.com' }
    }
  },
  {
    "id": "mailId2",
    "conversationId": "conversationId1",
    "content": "Hello",
    "sender": {
      "emailAddress": { name: 'Rose', address: 'rose@example.com' }
    }
  }
]

const userSchema = new schema.Entity('users', {}, {
  idAttribute: value => value.emailAddress.address
});
const conversationIdSchema = new schema.Entity('conversationIds', {}, {
  idAttribute: value => value
});
const mailSchema = new schema.Entity('mails', {
  conversationId: conversationIdSchema,
  sender: userSchema
});

const normalizedData = normalize(mails, [mailSchema]);

现在上面的代码会给我下面的结果:

(注意conversationIdSchema 不工作,因为它是错误的)

{
  result: { mails: ['mailId1', 'mailId2'] },
  entities: {
    users: {
      'jack@example.com': { name: 'Jack', address: 'jack@example.com' }
      'rose@example.com': { name: 'Rose', address: 'rose@example.com' }
    },
    mails: {
      // ...
    }
  }
}

我希望有这样的conversationId:

{
  result: { mails: ['mailId1', 'mailId2'] },
  entities: {
    users: {
      'jack@example.com': { name: 'Jack', address: 'jack@example.com' }
      'rose@example.com': { name: 'Rose', address: 'rose@example.com' }
    },
    mails: {
      // ...
    },
    conversationIds: ['conversationId1']
  }
}

【问题讨论】:

    标签: javascript normalizr


    【解决方案1】:

    不,这是不可能的。 Normalizr 适用于对象,而不是字符串。

    【讨论】:

      猜你喜欢
      • 2010-10-10
      • 2012-02-07
      • 2018-09-29
      • 2020-02-12
      • 2012-04-25
      • 1970-01-01
      • 2013-06-29
      • 2019-04-19
      • 2014-05-10
      相关资源
      最近更新 更多