設定:私は方法を見つけ出すように見えることはできませんNormalizr - 私は、彼らがnameプロパティ「ユーザーは、」結果のオブジェクトに返されていることを正規化<a href="https://github.com/paularmstrong/normalizr/blob/master/docs/api.md#normalizedata-schema" rel="nofollow noreferrer">examples</a>に見た結果では、ネストされた応答のキー
{
result: { users: [ 1, 2 ] },
entities: {
users: {
'1': { id: 1 },
'2': { id: 2 }
}
}
}
を私が得ているネストされたAPI応答でこれを行う。私は正規化された応答の結果を渡そうとしているユーザーと住所の両方を持っています。
私はこのようになりますJSONレスポンスを持っています。こう
import { schema } from 'normalizr'
/**
* Addresses
*/
const address = new schema.Entity('addresses');
const arrayOfAddresses = new schema.Array(address);
/**
* User
*/
export const user = new schema.Entity('users', {
addresses: arrayOfAddresses
});
user.define({
addresses: {
data: arrayOfAddresses
}
})
export const arrayOfUsers = new schema.Array(user)
:let result = normalize(data, schema.arrayOfUseres)
リターン:
{
entities: {
addresses: /* The address data */
users: /* The users with an array of the address ids attached to them*/
},
result: [1, 2]
}
私が本当に希望を
[
{
id: 1
first_name: First,
last_name: Last,
address: {
data: [
{
id: 1,
address_one: '123 Street Ave',
address_two: '',
city: 'Some City',
state: 'CA',
zip: '1234'
}
]
}
},
{
id: 1
first_name: First,
last_name: Last,
address: {
data: [
{
id: 2,
address_one: '123 Street Ave',
address_two: '',
city: 'Some City',
state: 'CA',
zip: '1234'
},
{
id: 3,
address_one: '321 Avenue Road',
address_two: 'Suite 101',
city: 'Some City',
state: 'CA',
zip: '1234'
}
]
}
}
]
私のスキーマは、このようになりますlikeは結果オブジェクトで、ユーザとその中のアドレスの両方を持つことです:
{
entities: {
addresses: /* The address data */
users: /* The users with an array of the address ids attached to them */
},
result: {
addresses: [1, 2, 3]
users: [1, 2]
}
}
これは可能ですか?私はいくつかのバリエーションを試しました
import * as schema from './schema'
normalize(data, { users: [schema.user], addresses: [schema.address] }
しかし、これはエラーになり、私のデータを結果オブジェクトに返します。
バマーですが、意味があります。早速のご返事ありがとうございます。 – Obscenity