3

我不明白 Immutable JS List 的大小会如何增长。

正如官方文档https://facebook.github.io/immutable-js/docs/#/List/push上的示例一样,在不可变 js 列表中推送某些内容将自动增大大小。

在我的代码中:

const list: List = List();
list.push(object);
console.log(list, list.size);

我在控制台的输出是:

(1) object
length: 1
___proto___: Array(0)

undefined

这与方面的输出确实不同。没有大小,如果我在代码中使用长度 Typescript 告诉我它在列表中不存在“长度”。我将 React 与 Typescript 和 Immutable.JS 一起使用

有人知道会发生什么吗?

4

1 回答 1

4

不变性意味着操作不会改变原始对象,而是创建一个新对象。

在您的情况下,该push方法将返回一个列表,其中包含所有旧元素和您刚刚添加的新元素。

您的代码应该看起来像这样。

const list: List = List();
const newList = list.push(object);
console.log(list, list.size);
console.log(newlist, newlist.size);

这应该为变量打印 0 的大小,为list变量打印 1 的大小newList

于 2018-10-09T15:14:12.773 回答