无法更新不可变列表项值



我正在尝试使用以下代码更新不可变列表。但名单没有改变。为什么会发生这种情况?

private gaparameterlist: Immutable.List<ConfigurationConstant>;
private updateItem(globalparameter: enums.IASamplingGlobalParameters, event) {
let item = this.gaparameterlist.find(x => x.key === globalparameter);
item.value = event.target.value;
this.gaparameterlist.set(0, item);
}

Immutable.List.set()不修改原始列表,而是返回一个带有新值的副本。

所以需要保存this.gaparameterlist.set(0, item):

的结果
private updateItem(globalparameter: enums.IASamplingGlobalParameters, event) {
let item = this.gaparameterlist.find(x => x.key === globalparameter);
item.value = event.target.value;
this.gaparameterlist = this.gaparameterlist.set(0, item); // save new immutable list returned by list.set()
}

最新更新