当前位置:  开发笔记 > 编程语言 > 正文

react-redux:state.setIn()和state.set()之间有什么区别?

如何解决《react-redux:state.setIn()和state.set()之间有什么区别?》经验,为你挑选了1个好方法。

我在一些react-redux代码中看到过使用setInt()和set():

state.setIn(...);
state.set(...);

我在这里找到了一些文档https://facebook.github.io/immutable-js/ 但遗憾的是这个方法没有详细记录.

我还发现了一些其他问题:将React的不可变助手与Immutable.js一起使用 但是这些都没有回答我的问题.

我明白,它必须做一些不变的东西?但这里有什么不可改变的东西?set()和setIn()之间有什么区别?为什么我们需要不变的?



1> hazardous..:

不可变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/ setInmethods非常有用,因为您可以使用通用操作并提供子组件的键路径.他们可以调用将路径作为参数传递的操作.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有