要我Immutable.js减少很多麻烦,这是一个伟大的图书馆,但我现在有麻烦了面对,我原来的对象来自服务器,但是当我用到它的功能,如fromJS({myObj})
它的工作原理,但保存副本,但排序“az”,我做了一些需要原始结构的东西,以保持组件的顺序来自服务器,有人任何想法?避免使用排序immutable.js
1
A
回答
0
Javascript核心对象明确没有提供有关按键顺序的保证。 Immutable.Map
(您的fromJS()
调用的预期结果)就是这样。
如果您想要订购,您应该将订单指定为每个项目的另一个属性,或者更常规地从Array
创建一个Immutable.List
。
换句话说,这听起来像一个方形挂钩/圆孔问题。确保你的任务使用了正确的数据结构。
2
fromJS
默认情况下将您的对象转换为lists
和maps
。前者是有序的,但没有键控,而后者是键控的,但没有命令,所以都不适合你的用例。
什么你要找的是一个OrderedMap
,这是一个Map
有额外的插入顺序保证:
import { OrderedMap } from 'immutable';
const orderedMap = OrderedMap({key: "value"});
+0
你先生,是救命啊! –
相关问题
- 1. 避免使用NSSortDescriptor排序
- 2. 避免排序在NSDictionary
- 3. as.numeric如何避免默认排序
- 4. 在T-SQL中避免排序
- 5. 如何在使用复合索引时避免排序?
- 6. NSTableView:在排序表格列时避免使用蓝色标题
- 7. 如何避免React组件中的Immutable.JS函数/访问器
- 8. 排序和分组的Immutable.js列表
- 9. 避免使用C#
- 10. 避免使用ServiceLocator
- 11. 避免使用Session.set
- 12. 避免使用OOP
- 13. 避免使用if子句
- 14. 如何避免使用Object.assign?
- 15. 避免使用左联接
- 16. 使用Pivot.ItemTemplate避免复制
- 17. 避免使用Unicode 1.1(html)
- 18. 避免与Backbone.js使用document.getElementById
- 19. 如何避免使用ssh
- 20. 如何避免使用strtold
- 21. 如何避免使用XSD
- 22. 避免重复使用jquery
- 23. Android。使用HttpClient避免ANR
- 24. 如何避免使用readlines()?
- 25. 避免使用的TransactionScope
- 26. 如何避免使用Thread.Sleep
- 27. 避免使用LWJGL闪烁
- 28. 避免通过使用jQuery
- 29. 避免使用SET TRUSTWORTHY ON
- 30. MySQL的性能,内联接,如何避免使用临时和文件排序
我尝试使用Immutable.List我得到了相同的结果,反正感谢。 下面是一个例子 [链接](https://jsfiddle.net/normanfx/sdufb9ac/) – Norman
@Norman您的代码接近。对象属性不会保持其顺序。如果你想要项目有一个订单,你需要将它们存储在'List'中:'var myOrderedObj = Immutable.fromJS({name:'thing',orderedProps:[{size:1},{weight:2}] })'。然而,这是一件很奇怪的事情。 –
:/好吧,我想我会用那个开始一些事情:)谢谢Trevor。 – Norman