jjzjj

Immutable

全部标签

javascript - 如何使用 Immutable.js 从 javascript 原始对象创建记录映射?

我是immutable.js的新手,我想更好地了解如何使用从原始JS对象开始的记录。使用Immutable.fromJS()我可以创建一个传递原始对象的映射,例如:varimages={"1":{id:"1",urls:["/medium/1.jpg","/large/1.jpg"]},"2":{id:"2",urls:["/medium/1.jpg","/large/1.jpg"]}}varimagesMap=Immutable.fromJS(images);imagesMap现在是包含其他map的map,每个map对应一张map。我想创建一个包含记录的map,例如使用定义为Imag

javascript - 从 Immutable.js 中的 Map 中的 List 中删除元素的最佳方法

我正在使用Facebook'sImmutable.js加速我的React应用程序以利用PureRendermixin.我的数据结构之一是Map()该map中的其中一个键有一个List()作为它的值(value)。我想知道的是,不知道要从List()中删除的项目的索引,删除它的最佳方法是什么?到目前为止,我已经想出了以下内容。这是最好(最有效)的方式吗?//this.graphsisaMap()whichcontainsaList()underthekey"metrics"onRemoveMetric:function(graphId,metricUUID){varindex=this.

javascript - 如何使用 flowtype 和 immutable.js 声明包含某些属性的 Map

给定一个这样创建的网站对象import{Map}from'immutable'constwebsite=newMap({name:'MyWebsite',url:'http://www.myw.fr'})我如何声明一个websiteType,它是一个完全包含给定属性的map。我知道我能做到:declaretypewebsiteType=Map但我想更具体一点,并声明一个映射,该映射必须包含string类型的属性name和url。有可能吗? 最佳答案 希望我答对了你的问题,因为我从未使用过“不可变”的map,因此我将使用es6Map.

javascript - 警告 : setState(. ..):无法在使用 redux/immutable 的现有状态转换期间更新

我遇到了错误Warning:setState(...):Cannotupdateduringanexistingstatetransition(suchaswithinrenderoranothercomponent'sconstructor).Rendermethodsshouldbeapurefunctionofpropsandstate;constructorside-effectsareananti-pattern,butcanbemovedtocomponentWillMount.我发现原因是constmapStateToProps=(state)=>{return{noti

javascript - 不可变 JS 比较嵌套结构

我有2个嵌套结构newState和newState1。但是当我比较它们时,equals()或Immutable.is()返回了false。这些结构中的值相同。如何正确比较newState和newState1?vargrid={editable:false,widgets:[{name:'Somewidget',type:'List',defaultDataSource:'daily',dataSources:{}},{name:'Somewidget1',type:'List',defaultDataSource:'daily',dataSources:{}}]};varstate=I

javascript - 在 react-js 中使用 immutable-js 时使用 PropTypes

我在React中使用immutable-js和react-immutable-proptypes。//CommentBox.jsxgetInitialState(){return{comments:Immutable.List.of({author:'PeteHunt',text:'Heythere!'},{author:'JustinGordon',text:'Alohafrom@railsonmaui'})};},render(){console.log(this.state.comments.constructor);return(Comments);}//CommentList

javascript - 有什么方法可以将 immutable.js 与 lodash 一起使用?

我正在使用immutable.js与我的通量应用程序。它非常有用,可以提高性能。但真正让我难过的是我不能使用lodash。和它一起。Lodash提供了很棒的AP​​I和大量有用的功能,所以我想知道是否有办法将它们组合在一起为我工作? 最佳答案 你可以使用Ramda如果您想要不变性和无副作用的函数。该库提供类似于lodash的有用功能,但采用从不改变用户数据的函数式编程风格。考虑thisReactexample使用ES6语法在Ramda中使用flatten函数。import{flatten}from'ramda';constusers

javascript - 流: Typechecking a complex Immutable shape using fromJS()?

如何使用Flow对从fromJS生成的Immutable.JS数据结构的形状进行类型检查?可以使用对象字面量符号非常准确地键入普通的旧JSblob:typeObjectShape={a:number,b:string,c:{d:number,},e:Array};constobj:ObjectShape={//hyper-accuratea:1,b:'2',c:{d:3,},e:[4]}但是,在Immutable.js方面,似乎有两个主要的并发症:似乎Immutable.js的fromJS方法返回any(https://github.com/facebook/immutable-js/

javascript - 如何将 Immutable JS 与类型化的 ES6 类一起使用?

假设我有课Task和TaskGroupclassTask{constructor(publictext:string){}}classTaskGroup{constructor(publictitle:string="newtaskgroup",publictasks:Task[]=[]){}}然后在我的Angular2服务中,我将创建一个不可变的任务组列表@Injectable()classTaskService{taskGroups:Immutable.List;constructor(){this.taskGroups=Immutable.List([newTaskGroup("

javascript - 在 Immutable.js 中解析嵌套记录

假设我使用Immutable.js定义了以下记录:varAddress=Immutable.Record({street:'',city:'',zip:''});varUser=Immutable.Record({name:'',address:newAddress()});如何将纯javascript对象转换为用户记录?我尝试了以下但它没有产生预期的输出:varuser=newUser({name:'Foo',address:{street:'Bar',city:'Baz'}});//=>Record{"name":"Foo","address":[objectObject]}我知道