问题标签 [immutability-helper]

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.

0 投票
2 回答
3986 浏览

reactjs - 使用不变性助手在特定索引处推送新对象

我试图这样做:

但是,它会抛出这样的错误:

0 投票
1 回答
76 浏览

node.js - 不变性助手更新一个属性但不更新其他属性?

我有一个看起来像这样的 jsx 样式:

我希望它定位:固定在智能手机和 IOS 上,但不在台式机上。

所以我有一些使用不变性助手的代码:

在调用 to 之后updateposition属性被正确更新为fixed,但topleftright属性没有更新为0px- 它们仍然设置为auto

我错过了什么?

在此处输入图像描述

0 投票
1 回答
60 浏览

javascript - immutability-helper - 坚持操作简单的对象

我想使用 immutability-helper 进行两种类型的操作,但我非常卡住。

我有这些数据,模拟来自 API 的结果:

类型 1 - 当我有索引时更改声音名称

如果我知道声音数组的索引,如何更改其中一个声音名称?我希望使用 update(test_data, $merge ...)。到目前为止我所做的不起作用,所以我没有在这里粘贴它。

类型 2 - 当我知道 ID 时更改声音名称

如果我知道声音的 ID,它是声音数组中对象的属性,是否有使用更新的简洁方法?如果是这样,我很想看到它。否则,我将使用 array.findIndex 来获取索引。

我真的很感谢任何帮助,这个周末我被困住了。

0 投票
0 回答
175 浏览

reactjs - 使用 immutability-hepler 更新嵌套数组的最佳方法

我在 React 中使用 immutability-helper 来更新状态。我曾经更新过这样的事情:

但是如何更新一个属性,它是一个数组。假设markers是一个数组,如果我使用创建newElement$set,它只是创建一个引用副本,因此,这个:

将修改状态。除此以外,正确的方法是什么:

0 投票
1 回答
500 浏览

javascript - 打字稿+不变性助手#set

我来加入打字稿旅行车,我想在更新我的 redux 商店时继续使用这个 immutability-helper lib,但由于某种原因,现在我在尝试执行更新时收到此错误?:

[ts] 类型参数 '{ flags: { hideChat: { $set: boolean; }; }; }' 不可分配给“Spec”类型的参数。对象字面量只能指定已知属性,并且“标志”类型不存在“规范”。

我以为这应该是微不足道的,应该开箱即用,我在后台运行的开玩笑测试可以解决这个问题,但 VScode TS Linter 有点生气。

不确定这是一个错误还是只是 VScode 搞砸了。

0 投票
0 回答
117 浏览

javascript - 使用 immutability-helper,如何在不克隆其他字段的情况下设置类实例的属性?

这是一个例子:

我想使用该函数将elemArray's second element's设置x为 30 。setX最简单的方法是:

但是我希望能够在不克隆数组的情况下做到这一点ary,因为它本身可能很大并且克隆可能很昂贵。我怎样才能做到这一点?

谢谢

0 投票
1 回答
4581 浏览

javascript - 将 immutability-helper 与 Array、Object、Map 一起使用

如何使用immutability-helper进行简单的创建、更新/修改、替换、删除?

  1. 如果我有一组简单的值?

  2. 如果我有一组简单的对象?

  3. 如果我的数组在另一个对象中?

  4. 如果我有一个对象?(散列,无序)

  5. 如果我有对象地图?(散列,有序)

作为一个初学者,我发现官方文档有点混乱。

0 投票
0 回答
170 浏览

reactjs - setState 改变状态,但文本字段中的值没有改变

我有动态数量的文本文件,并将值保存到数组中的这些文本字段中。起初,这些值使用不变性助手从服务器中填充数据,但是当我想编辑文本文件时,它不会改变。当我打印状态值时,值已更改但文本字段未更新。

0 投票
0 回答
102 浏览

javascript - React setState 没有将更新的状态数据作为道具传递给组件渲染?

我是一名 React 初学者,正在尝试制作一个纸牌游戏应用程序(使用“react-dnd”来实现拖放功能)。

此应用程序的board状态(放置卡片的位置)是 4x4 网格,存储为 2d 数组

(初始示例被截断)

当卡片被放置在一个空间上时,这个setState函数被调用(使用immutability-helper):

这会setState调用一个回调函数runAfterSetState来根据刚刚打出的牌运行实际的游戏逻辑信息。该函数内部是另一个setState调用。这setState只会在特定情况下发生,如果有多张敌方牌,玩家现在需要点击其中一张敌方牌。我认为,为了实现这一点,我需要为board状态中的敌人卡片信息添加一个新的对象键(这样我就可以添加样式、clickHandlers 等)。我认为这是事情出错的地方

虽然上面的控制台日志似乎显示信息已正确更新,但程序实际上并未反映这一点(使用 React 检查器 Chrome 工具)。我怀疑我的程序在Board没有这个新更新的信息的情况下再次重新渲染组件,本质上是删除它?据我所知,上面的代码块应该是最后一个被调用的东西,因此应该是组件最后的状态。

在这里的任何帮助将不胜感激。


具有完整工作代码(以及我的愚蠢评论)的 Codesandbox:

https://codesandbox.io/s/billowing-leaf-81hw9?fontsize=14

要查看我的具体问题,一张彩色卡片必须有 2 个或更多箭头接触相邻的敌方卡片箭头。示例图片:https ://i.imgur.com/5SyrSBo.png (红卡左上角和左上箭头接触敌方蓝卡箭头)

0 投票
1 回答
386 浏览

javascript - 无法使用不变性助手更新状态

我的状态中有对象,父对象中有嵌套对象,更新状态中的对象可能会导致状态突变,并且建议使用不可变助手的许多答案,(react-addons-update)这是我的状态:

这就是更新房间属性的方式:

和储备属性

但即使它正在获取值和名称,它也不会更新状态。什么是问题?