gpt4 book ai didi

javascript - react-redux : What is the difference between state. setIn() 和 state.set()?

转载 作者:可可西里 更新时间:2023-11-01 01:29:26 24 4
gpt4 key购买 nike

我在一些 react-redux 代码中看到了 setIn()set() 的使用:

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

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

我还发现了一些其他问题:Using React's immutable helper with Immutable.js但这些并没有回答我的问题。

我明白,它必须做一些不可变的事情吗?但是这里不可变的东西是什么?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 方法在更新商店中的状态时非常有用,因为您可以使用通用操作并为子组件提供关键路径。他们可以调用将路径作为参数传递的操作。

关于javascript - react-redux : What is the difference between state. setIn() 和 state.set()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34434354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com