私は完全なオブジェクトに戻す非正規化をしようとしています。私は文書hereに基づいてフォローしようとしています。私が理解したところでは、入力値は結果値の1つでなければならず、オブジェクトを再構築するためにスキーマとエンティティを提供します。しかし、返される値は、キーが0で入力値がオブジェクトです。 {0:44}
のように、正規化されていないユーザーオブジェクトの代わりに使用できます。新しいNormalizrでエンティティを非正規化できません。3.1.0
userSchemas.js
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"}
}
}
EDIT非正規化
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 }
:問題でを示しhttp://requirebin.comに貼り付けることができ要旨をコンソール
どちらのvar denormalizedUser = normalizr.denormalize([2], user, normalizedUsers)
あなたの最初の引数はちょうど2
あるべきか、あなたの2番目の引数は[ user ]
次のようになります。
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)
'this.props.users.entities'の値は何ですか?私はこれがあなたの問題がどこにあるのだろうと思う。 –
私はthis.props.users.entitiesデータでOPを更新しました – DigitalDisaster
エクスポートされたスキーマを 'denormalize([user]、...)'で渡している 'user'は正規化されているはずですスキーマではなく、スキーマではありません.2番目の引数だけがスキーマとみなされます。 –