我已经在一些react-redux代码中看到了setInt()和set()的用法:
state.setIn(...);
state.set(...);
我在这里https://facebook.github.io/immutable-js/找到了一些文档,但是不幸的是该方法没有详细记录。
我还发现了其他一些问题:通过Immutable.js使用React的不可变帮助器,但是这些并不能回答我的问题。
我了解,它必须做一些不变的事情吗?但是这里不变的是什么?set()和setIn()有什么区别?为什么我们需要不变的?
不可变set
方法仅设置直接属性,即对象的直接子级。一个setIn
让你设置任何深节点下的数据值。set
仅使用属性名称。setIn
接受键/索引的数组以深入到嵌套的元素。
var basket = Immutable.Map({"milk":"yes", "flour":"no"});
basket = basket.set("flour", "yes");
basket = Immutable.Map({"fruits":{"oranges":"no"}, "flour":"no"});
basket = basket.setIn(["fruits", "oranges"], "yes");
在getIn
/ setIn
在商店更新状态时,你可以使用通用的行动,并提供关键路径的子组件的方法是非常有用的。他们可以调用将路径作为参数传递的动作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句