是否可以规范化字符串?
Is it possible to normalizr string?
我正在使用 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: {
// ...
}
}
}
我希望有这样的conversationIds:
{
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']
}
}
不,这是不可能的。 Normalizr 适用于对象,而不适用于字符串。
我正在使用 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: {
// ...
}
}
}
我希望有这样的conversationIds:
{
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']
}
}
不,这是不可能的。 Normalizr 适用于对象,而不适用于字符串。