我是Flux库的新手,已经在我的项目中完成了tutorial的工作。在编辑待办事项的过程中,我有些迷路了。特别是,我对这段代码感到困惑:
case TodoActionTypes.TOGGLE_TODO:
return state.update(
action.id,
todo => todo.set('complete', !todo.complete),
);
我一直在Google的flux中搜索“ .update”方法,但每次搜索都将我重定向至flux的初学者指南,该指南未引用任何.update方法。
现在,我的状态应包含如下内容:
state = {id1:
{
foo: 'bar',
fizz:'buzz'},
}
我的目标是创建一个可编辑的属性,用户可以在其中将存储在foo中的值更新为所需的值。目前,我看不到使用flux利用的state.update方法的明确路径。我想知道state.update如何在flux中工作,以及如何使用它来编辑给定id的foo中存储的值。
编辑:对React Flux教程中文档的进一步探索将我带到此代码块:
case TodoActionTypes.EDIT_TODO:
return state.setIn([action.id, 'text'], action.text);
尽管我仍不清楚set.update和state.setIn方法如何工作,但我至少找到了继续进行我的项目的方法。话虽这么说,我非常不喜欢复制和粘贴代码,而至少不了解这些方法应该如何工作,它们需要哪些参数等等。我仍然想对这些方法有更多的了解。
编辑2:已经向我指出,这来自Immutable.js,而不是Flux。 The docs for Immutable提供进一步的说明。
该函数来自Immutable.js库,而不是像我以前相信的那样来自React。