通量状态.update
Posted
技术标签:
【中文标题】通量状态.update【英文标题】:Flux state.update 【发布时间】:2020-02-02 01:00:52 【问题描述】:我是 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 中的值更新为他们喜欢的任何值。目前,我没有看到使用通量使用的 state.update 方法的明确路径。我想知道 state.update 如何在不断变化中工作,以及如何使用它来编辑存储在 foo 中的给定 id 的值。
编辑:对 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 提供进一步说明。
【问题讨论】:
你的意思是this one? 这似乎是 update() 的来源。我从没想过它可能来自不可变库——非常感谢! 不错。仅供参考,现在更流行的 Flux 替代品是(可以说更简单的)Redux 库,而 ImmutableJS 的替代品是immutability-helper
。在确定一个框架之前探索您的选择。
【参考方案1】:
该函数来自 Immutable.js 库,而不是我之前认为的来自 React。
【讨论】:
以上是关于通量状态.update的主要内容,如果未能解决你的问题,请参考以下文章