【发布时间】:2021-02-05 15:47:55
【问题描述】:
我想在我的 Angular 应用程序中使用 Immutable.js,因为我听说它可以提高性能。
所以我想将我的代码转换为使用 Immutable.js 包。
所以,我的组件有一个常规的打字稿地图,它在组件的模板中使用。 它使用带有 keyValue 管道的 *ngFor 进行迭代。
当我将该映射替换为 Immutable.Map 时,迭代将不起作用!!
那么问题来了,如何在模板中迭代 Immutable.Map?
提前谢谢
更新: 重现问题。
在 app.component.ts 中:
import { Comoonent} from '@angular/core';
import { Map as immuMap} from 'immutable' ;
@Component({
selector: 'app-map',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
myMap = immuMap({ a: 1, b: 2, c:3});
}
在 app.component.html 中:
<div *ngFor="let item of myMap | keyvalue >
<span>{{item.key}} : {{item.value}}</span>
</div>
当 myMap 是一个简单的 typescript Map 时,它可以工作。 上面的代码是重构为 Immutable.js Map 之后的代码。 现在 ngFor 不会产生与以前相同的结果....
顺便说一句,上面代码的结果是: __改变:假 __哈希: __ownerID: _root : [对象对象] 尺寸:3
【问题讨论】:
-
请帮助响应者通过添加代码和描述问题来重现您的问题(“无法工作”不是问题描述)(How to ask a good question)。所有 immutable.js 集合都支持可迭代模式,因此这可能是您的代码特有的问题。
-
@dube 感谢您的评论! “在 Angular 中迭代……”没有回答我的问题。因为他使用 List 而我使用 Map。我更新了问题。
标签: angular typescript immutable.js