无法使用新的 Normalizr 3.1.0 对实体进行反规范化

Unable to denormalize entity with the new Normalizr 3.1.0

我正在尝试将用户反规范化为一个完整的对象。我正在尝试根据文档 here 进行操作。据我了解,输入应该是结果值之一,然后您提供架构和实体来处理重建对象。返回值虽然是一个对象,其键为 0,输入值为。 {0:44} 例如,而不是整个非规范化用户对象。

userSchemas.js

import { schema } from 'normalizr';

const photos = new schema.Entity('photos')
const phones = new schema.Entity('phones')
const user = new schema.Entity('users', {
    photos: [photos],
    phones: [phones]
})

const usersSchema = new schema.Array(users)

export { usersSchema, user as userSchema }

反规范化

denormalize([user], userSchema, this.props.users.entities)

this.props.users.entities

{
users : { 
         1: {id:1, name: "john", phones:[2]}
        },
photos : {},
phones : {
          2: {id:2, phone: "34234324"}
         }
}

编辑:可以粘贴到 http://requirebin.com 中的要点,在控制台

中显示问题
var normalizr = require("normalizr")

const photos = new normalizr.schema.Entity('photos')
const phones = new normalizr.schema.Entity('phones')
const user = new normalizr.schema.Entity('user', {
    photos: [photos],
    phones: [phones]
})

const usersSchema = new normalizr.schema.Array(user)

var users = [
  {id: 1, name: "bob", phones: [{id:3, phone: 45234324},{id:4, phone: 42342432}]},
    {id: 2, name: "will", phones: [{id:3, phone: 45234324},{id:6, phone: 5435345}]},
    {id: 4, name: "sam", phones: [{id:6, phone: 5345353},{id:7, phone: 42342432}]}
]

var normalizedUsers = normalizr.normalize(users, usersSchema)

var denormalizedUser = normalizr.denormalize([2], user, normalizedUsers)

console.log(denormalizedUser)

这一行是错误的:

var denormalizedUser = normalizr.denormalize([2], user, normalizedUsers)

您的第一个参数应该只是 2 或者您的第二个参数应该是 [ user ].

[编辑]

此外,normalizedUsers 应该只是 entities,而不是完全规范化的结果。使用 normalizedUsers.entities