【发布时间】: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