问题标签 [seamless-immutable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 将对象数组映射到按对象键js不可变分组的映射中
我想将对象数组映射到按特定对象键分组的输出不可变映射。
使用 immutablejs 或 seamless-immutable 最有效的方法是什么?
目前我使用reduce as:
这个输出是我想要的,但问题byTime
是我需要合并而不是覆盖。
我试过无缝不可变我做了:
reactjs - 从嵌套的 redux 状态中删除元素
我想从我的 redux 状态中删除一个元素。我使用无缝不可变及其 API 对状态进行操作。但是当状态嵌套时,我找不到任何漂亮的方法来删除元素。
所以我要删除的元素是:
state.shoppingcartReducer.products[articleNr]
谢谢!
javascript - 如何使用 ESlint 禁止特定的命名函数
情况
在我们当前的项目中,我们遇到了一些反复出现的问题,人们使用无缝不可变的“asMutable”,而实际上并没有必要。这导致“字符串“asMutable”的搜索项目”成为每个拉取请求的一部分。为了加快速度,我们想在我们的 eslint 中添加一个规则警告。但我还没弄清楚怎么做。
问题
尽管我愿意接受建议,但现在对我来说似乎最好的解决方案是允许我指定要禁止的函数名称的规则。ESlint 或插件是否具有这种功能?
补充说明
我已经考虑过编写我们自己的规则,但我被AST和编写我的第一条规则的启动困难吓倒了。如果我找不到更好的答案,我可能会冒险,是的,我们在 PR 中得到了足够的保证。不过,这似乎是比我聪明得多的人已经解决的问题,所以我宁愿追随他们的脚步,然后建立自己的。
seamless-immutable - 无缝不可变数组属性不是不可变的
我想知道是否有一种方法可以使用无缝不可变来转换对象,其中结果不可变的数组属性也是不可变的,目前
我想要的是ia.hey,一个数组,也是不可变的,有人知道吗?
redux - 无缝不可变不会始终如一地更新状态
我正在使用无缝不可变和 redux,并且在更新状态时遇到了一个奇怪的错误。这是我的代码,没有动作返回或 combineReducers 之类的位。只是正在运行/导致错误的垃圾。
初始状态
动作处理器
带有 thunk 的中间件
现在,奇怪的是,如果我将这两个动作一起运行,一切都很好。
如果我只 dispatch thingsRequest()
,我会收到“无法推送到不可变对象”错误。
我尝试过使用 set、update、replace、merge 等方法,但它们通常返回“this.merge is not a function”。
我是在程序上做错了什么,还是应该联系模块开发人员报告问题?
reactjs - react-big-calendar 从远程 url redux 问题中获取事件
在尝试制作演示预约系统时,我遇到了一个奇怪的情况。我想通过 Django 后端 rest api 获取事件,它工作得很好,我也可以看到控制台中的数据。
这是我的索引文件(提供者所在的位置): https ://hastebin.com/ubefumofor.js
我的日历渲染组件: https ://hastebin.com/oronefibap.scala
我的 Redux,我正在使用它的 reduxsauce 库: https ://hastebin.com/usetavasub.js
我的 ReduxSaga 文件: https ://hastebin.com/wutuvelefi.js
现在,问题是,在获取事件后,我正在努力做一些事情:
如果我在 componentWillUpdate 或 componentDidUpdate 中调用它,它会在哪里设置状态?
如果我使用 this.props.events,我会收到以下错误,我已将其作为图片附加。它说
uncaught at fetchEventsByDoctor The sort method cannot be invoked on an Immutable data structure.
现在我知道道具不能修改,状态可以。
有什么建议可能是错的吗?谢谢
解决方案
这应该可以解决问题,但下面 Nagaraj 的回答也是一个很好的工作解决方案。
react-native - React reducer 和无缝不可变
我是整个 reducer 和不可变事物的新手,所以也许有人可以回答我一些问题。我在 react native 中使用无缝不可变(https://github.com/rtfeldman/seamless-immutable)和 redux-semmless-immutable (https://github.com/eadmundo/redux-seamless-immutable)应用程序。
我对以下代码有一些疑问:
- 我是否必须像 in 一样将每个属性定义为 Immutable 对象,
const PRODUCTS_INITIAL_STATE = Immutable({ data: Immutable([]), loading: true });
还是 Immutable 会处理这个问题,这足以做到const PRODUCTS_INITIAL_STATE = Immutable({ data: [], loading: true });
吗? - 我是对的,使用三个点的 JSX 方法与使用
{ ...state, loading: action.payload }
相同Immutable.merge
吗? - 是否有更简单的
ADD_PRODUCT
操作方法,将元素添加到嵌套在对象中的数组中?
更新
另一个问题出现了:我有一个不可变的数组,其中包含对象。当我想添加另一个元素时,我必须使用Immutable(array).concat(newElement)
. 但是,如果我只想替换其中一个对象内的值怎么办?
考虑这个数组:
如果我想将第一个元素的名称从更改为不可变的方法是foo
什么hello
?
typescript - 使用 Immutable.from 创建的对象中的 Typescript 无缝不可变数组未推断为数组
我遇到了无缝不可变和 Typescript 的问题。当我创建如下包含一个数组的对象,然后从创建的不可变对象中“获取”该数组时,类型系统无法推断出它是一个不可变数组并导致错误:
[ts] 无法调用类型缺少调用签名的表达式。类型 > '((callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]) | (...' 没有兼容的调用签名。
代码:
使用:
- 打字稿 2.6.1
- 无缝不可变 7.1.1
- @types/无缝不可变 7.1.1
有什么建议么?类型的东西?这里最有意义的是什么?
javascript - 无缝不可变:使用普通的旧 javascript 对象检测不可变对象
我正在为我的 Redux 应用程序使用无缝的不可变库。在某些情况下,我需要检查给定对象是无缝不可变对象还是只是普通的旧 javascript 对象。我已经阅读了文档,但我还没有看到任何相关文档。请告诉我如何通过代码检查。
谢谢