- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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:[]}
]
我正在尝试使这个简单的响应正常化。我不确定我在做什么有什么问题,或者我没有理解 normalizr 文档。
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);
这只会对“结果”对象产生相同的响应,而实体对象是空的。有人可以帮帮我吗。首先,我试图仅对帖子进行规范化,然后再对帖子进行规范化。但我无法跨过第一步。
最佳答案
使用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)
});
关于javascript - Normalizr - 未达到预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35470393/
我正在规范化一个一级嵌套批处理列表。第一级地段称为主人,嵌套的是奴隶。 // my schema const lot = new schema.Entity('lots'); const lots =
我有一个 API,它使用 fields 属性中的属性提供这样的数据。 { records: [ { id: "123", fields: { author: {
我有一个像这样的嵌套对象数组: var matchs = [ { id: 10689, sport: 'Tennis', players: [
我使用 normalzr 来标准化 Redux 存储中的数据。但是,我不知道如何在标准化数据上创建标准化索引。以下是我在不使用 Normalizr 的情况下解决该问题的方法: var postData
我如何转换一些json数组 [ { "travelExpenseId":11, "tripId":2, "paymentPurpose":"some paym
import { normalize, Schema, arrayOf } from 'normalizr'; var ListA = [ { id:1, te
我正在对从 Api 接收的数据使用 normalizr。当我收到列表时,我会按预期获得规范化实体。 但是当我发送更新一个实体的请求时,我只收到一个包裹在数据信封中的实体,它没有被 normalizr
我需要重组来自服务器 API 的数据以在我的客户端应用程序中使用,我开始了解 normalizr .如果可能,我正在尝试使用这个库。 数据结构如下。 { "history": [{
我需要规范化这些数据,以便我同时拥有一组列表和另一个待办事项。 const data = [ { _id: '1', title: 'List1', todos: [
对于多态模式,例如 Union在 Normalizr 中,对于模式定义和数据: const data = { owner: { id: 1, type: 'user', name: 'Anne' }
如果您有一个规范化的 redux 存储并为实体使用 id,但还有其他额外的唯一标识符并且也需要使用它们,您会怎么做。 例子 { entities: { users: {
我正在构建一个音乐播放器应用程序,并使用 REST API 从各个端点获取轨道(播放列表、特定用户发布的轨道等) 我正在使用 redux 和 normalizr 来管理我的状态。我创建了一个 trac
我知道我的问题的表述很奇怪,但我不知道如何正确表达。我想使用 Redux 的 normalizr 规范化我的数据。让我用代码陈述我的问题。 我有一个如下所示的 api 响应: [ { "n
comments : { byId : { "comment1" : { id : "comment1", author : "
我刚刚开始在 Redux 中使用 normalizr,我被困在我看来像一个简单的问题上,但我可能做错了。所以我想对这样的数组进行规范化: { articles: [ {id: 1, som
考虑传回的 User 对象: { "id": "123", "username": "TestUser", "group": { "id": "324",
我想用 normalizr 规范化我的数据.问题是我的数据中有一个键 (teams),它与其他数据没有关系。 例如: const data = { programs: [{ id:
我想规范化这种格式的数据: [ { id: 3, status: "active", created: "2017-07-03T15
我必须规范化来自服务器的两个响应,并使用 normalizr 将它们存储在我的商店中。第一个回复给了我章节,第二个回复给了我帖子。 版 block 有很多帖子。 一个帖子只能有一个部分。 第一 rea
在使用 Normalizr 后我有一个这样的数组: comments : { byId : { "comment1" : { i
我是一名优秀的程序员,十分优秀!