import { normalize, Schema, arrayOf } from 'normalizr';
var ListA = [
{
id:1,
text: "text1",
comments : [
{
id: 232,
text: "asfasd"
},
{
id: 333,
text: "abcsss"
}
]
},
{id:2, text:"text2", comments:[]},
{id:3, text:"text3", comments:[]}
]我正试图使这一简单的反应正常化。我不知道我在做什么有什么问题,或者我还没有理解正常化文档。
const post = new Schema('posts');
// const comment = new Schema('comments');
// const collection = new Schema('collections');
// post.define({
// comments : comment,
// collections : arrayOf(collection)
// });
ListA = normalize(ListA, {
posts: arrayOf(post)
});
console.log(ListA);这只是对“结果”对象的相同响应,而实体对象是空的。有人能帮帮我吗。首先,我试图使“邮报”正常化,之后也会有评论。但我还没能通过第一步。
发布于 2016-02-18 00:36:01
使用normalizr的几个例子
1)规范化简单对象
比方说
import { Schema, arrayOf } from 'normalizr';
const postSchema = new Schema('posts');
// simple post object
var post = {
id:1,
title: "some title"
};
console.log(normalize(post, postSchema));结果将是
{
"entities":{
"posts":{
"1":{
"id":1,
"title":"some title"
}
}
},
"result":1
}2)规范化对象数组()
import { Schema, arrayOf } from 'normalizr';
const postSchema = new Schema('posts');
// array of posts
var posts = [
{
id:1,
title: "foo"
},
{
id:2,
title: "far"
},
{
id:3,
title: "baz"
}
];
console.log(normalize(posts, arrayOf(postSchema)));结果将是
{
"entities":{
"posts":{
"1":{
"id":1,
"title":"foo"
},
"2":{
"id":2,
"title":"far"
},
"3":{
"id":3,
"title":"baz"
}
}
},
"result":[
1,
2,
3
]
}3)规范复杂对象
const postSchema = new Schema('posts');
const authorSchema = new Schema('authors');
const commentSchema = new Schema('comments');
postSchema.define({
author: authorSchema,
comments: arrayOf(commentSchema)
});
// complex post object
var post = {
id:1,
title: "foo",
author: {
id: 201,
name: "Bar Baz"
},
comments: [
{
id: 1002,
body: "Some content"
},
{
id: 1003,
body: "Some content 1003"
},
{
id: 1004,
body: "Some content 1004"
}
]
};
console.log(normalize(post, postSchema));结果将是
{
"entities":{
"posts":{
"1":{
"id":1,
"title":"foo",
"author":201,
"comments":[
1002,
1003,
1004
]
}
},
"authors":{
"201":{
"id":201,
"name":"Bar Baz"
}
},
"comments":{
"1002":{
"id":1002,
"body":"Some content"
},
"1003":{
"id":1003,
"body":"Some content 1003"
},
"1004":{
"id":1004,
"body":"Some content 1004"
}
}
},
"result":1
}所以你可以试试
ListA = normalize(ListA, arrayOf(post));而不是
ListA = normalize(ListA, {
posts: arrayOf(post)
});https://stackoverflow.com/questions/35470393
复制相似问题