我是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中存储的值。
编辑:对反应通量教程中文档的进一步探索将我带到以下代码块:
case TodoActionTypes.EDIT_TODO:
return state.setIn([action.id, 'text'], action.text);
虽然我仍然不清楚set.update和state.setIn方法的工作方式,但我至少找到了继续进行我的项目的方法。话虽如此,我非常不喜欢复制和粘贴代码,而至少不了解这些方法应该如何工作,它们需要什么参数等等。我仍然想对这些方法有更多的了解。
编辑2:有人向我指出,它来自Immutable.js,而不是Flux。 The docs for Immutable提供了进一步的说明。
答案 0 :(得分:0)
该函数来自Immutable.js库,而不是像我以前相信的那样来自React。