尝试规范化我的有效负载有一些问题,该有效负载包含与使用 Normalizr的父类型相同类型的嵌套模式

例如,我有一个初始对象(Menu),它有一个子(Sections),它是一个带有截面的对象数组,可以深入.

{
  id: 123,sections: [{
    id: 1,sections:[{ id: 4,sections: [ id: 5,sections: [] ] }]
  },{
    id: 2,sections:[]
  },{
    id: 3,sections:[]
  }]
}

我开始创建一个菜单模式,其中定义中的部分链接到部分模式,适用于第一次传递,但后来不会处理部分的子节点,所以我在节模式中添加了一个后续定义同名(值得一试)但它没有用.

const section = new schema.Entity('sections')

const sections = new schema.Entity('sections',{
  sections: section
})

const menu = new schema.Entity('menu',{ 
  sections: [ sections ]
})

section.define({ sections })

我希望最终得到以下对象:

{
  entities: {
    menu: {
      sections: [1,2,3]
    },sections: [{
      1: { id: 1,sections: [4] },2: { id: 2,sections: [] },3: { id: 3,4: { id: 4,sections: [5] },5: { id: 5,}]
  }
}

解决方法

您的sections模式应该是一个Array.
const section = new schema.Entity('sections')
const sections = new schema.Array(section);
section.define({ sections });
const menu = new schema.Entity('menu',{ sections });

然后,在使用它…

const data = {
  id: 123,sections: [ { id: 5,sections: [] } ] }]
  },sections:[]
  }]
};

normalize(data,menu)

将返回:

{
  "entities": {
    "sections": {
      "1": { "id": 1,"sections": [ 4 ] },"2": { "id": 2,"sections": [] },"3": { "id": 3,"4": { "id": 4,"sections": [ 5 ] },"5": { "id": 5,"sections": [] }
    },"menu": {
      "123": { "id": 123,"sections": [ 1,3 ] }
    }
  },"result": 123
}

javascript – 如何使用Normalizr定义递归模型的模式的更多相关文章

  1. ios – 嵌套递归函数

    我试图做一个嵌套递归函数,但是当我编译时,编译器崩溃.这是我的代码:编译器记录arehere解决方法有趣的…它似乎也许在尝试在定义之前捕获到内部的引用时,它是bailing?以下修复它为我们:当然没有嵌套,我们根本没有任何问题,例如以下工作完全如预期:我会说:报告!

  2. ios – CRASH尝试删除并重新加载相同的索引路径

    非常感谢!

  3. swift override --有一个递归问题未解决

    classca{varcount:Int{get{return1;}set{self.count=newValue;}}funcdescribe()->String{return"ca";}}classcb:ca{overridefuncdescribe()->String{return"cb";}overridevarcount:Int{get{return2;}set{//引起了递归调用,未找

  4. Swift2.0语言教程之函数嵌套调用形式

    Swift2.0语言教程之函数嵌套调用形式Swift2.0语言函数嵌套调用形式在Swift中,在函数中还可以调用函数,从而形成嵌套调用。以下将对这两种调用进行详细讲解。调用方式如图7.4所示。图7.4函数嵌套的形式以下将使用函数的嵌套调用实现对s=22!这个数值,即调用f1()函数,计算22,结果为4,然后在调用f2()函数,对4的阶乘求取,计算完成22!但是在Swift语言中递归必须要有一个满足结束的条件。

  5. 【Swift】学习笔记(九)——枚举

    因为类完全可以替代枚举。不过swift中也有许多类的特性被枚举支持。这样判断必须穷举所有成员,否则就需要增加default这个选项了。使用递归枚举时,编译器会插入一个中间层。

  6. Swift实现的快速排序及sorted方法的对比

    Swift语言有着优秀的函数式编程能力,面试的时候面试官都喜欢问我们快速排序,那么用Swift如何实现一个快速排序呢?然后实现快速排序的方法:可以发现使用Swift实现快速排序的代码非常的简洁。在看完这段代码后我做了如下思考:既然是排序,那么必然可以使用系统的sorted方法,效果如何呢?对于快排最头疼的顺序性数组,sorted的重复次数只有n次!说明在面对这种类型的数组的时候sorted方法进行过判断,直接输出了。

  7. Swift - 动态添加删除TableView的单元格以及内部元件-日期控件

    比如我们做一个消息提醒页面,默认页面只显示两个单元格。当点击第二个单元格时,下面会再添加一个单元格放置日期选择控件。而再次点击第二个单元格,日期选择控件又会隐藏。//日期选择器显示状态datePickerVisible:Bool=falseoverridefuncviewDidLoad(){super.viewDidLoad()self.title="添加任务"//去除尾部多余的空行.tableView.tableFooterView=UIView}didReceiveMemoryWarning(){.d

  8. [IOSS]UITableView分组

    [IOSS]UITableView分组DEMO:http://download.csdn.net/detail/u012881779/9233421应用入口(AppDelegate.swift)分组控制器(DMViewController.swift)分组Cell(DMTableViewCell.swift)示意图:

  9. 《swift2.0 官方教程中文版》 第2章-08枚举

    importFoundation//在Swift中,枚举类型是一等公民。像Swift中其他类型一样,它们的名字必须以一个大写字母开头。给枚举类型起一个单数名字而不是复数名字,以便于读起来更加容易理解:vardirectionToHead=Compasspoint.West//directionToHead的类型可以在它被Compasspoint的一个可能值初始化时推断出来。//使用枚举成员的rawValue属性可以访问该枚举成员的原始值:letearthsOrder=Planet2.Earth.rawVa

  10. Swift:表格视图单元格单选二

    效果前言前段时间写了一篇博客:表格视图单元格单选(一),实现起来并不复杂,简单易懂。,由于每一组中,单元格内容不一致,因此建议用字典存储。我们可以为它创建一个indexPath属性,在配置表格视图协议方法cellForRowAtIndexPath:时,我们赋值单元格的indexPath属性就OK了。

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部