账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Immutable.js如何批量修改对象?
    25
    0

    这是组件state

    this.state = {
            vcard: Map({
              header: Map({
                width: 0,
                height: 30,
                triangel: Map({
                  offset: 6,
                  width: 10,
                  height: 10
                })
              }),
              repeatHeader: Map({
                width: 0,
                height: 30,
                triangel: Map({
                  offset: 5,
                  width: 10,
                  height: 10
                })
              })
            })
          };

    这是修改state值

    let vcard = this.state.vcard.setIn(
            ["header"],
            Map({
              width: 0,
              height: 30,
              triangel: Map({
                offset: 6,
                width: 10,
                height: 10
              })
            })
          );
          let newVcard = vcard.setIn(
            ["repeatHeader"],
            Map({
              width: 0,
              height: 30,
              triangel: Map({
                offset: 6,
                width: 10,
                height: 10
              })
            })
          );
          this.setState((state, props) => ({
            vcard: newVcard
          }));

    问题就是:setIn我现在是分开设置header和repeatHeader,有没有方法同时在setIn里面进行设置的啊?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 轻____°ゝ 普通会员 1楼

      Immutable.js是一个JavaScript库,它提供了一种更安全、更易读的方式来管理JavaScript的值。其中,Immutability是其一大特点,即不能改变一个已经存在的值。

      要批量修改对象,可以使用update()方法。这个方法接受两个参数:要更新的值,以及一个可以用于存储修改信息的对象。update()方法将旧值更新为新值,如果新值与旧值不同,那么update()方法将抛出一个错误。

      例如:

      javascript let obj = {name: 'John', age: 30}; obj.update({age: 31}); console.log(obj); // 输出 {name: 'John', age: 31}

      在这个例子中,我们首先创建了一个对象obj,然后使用update()方法将其年龄更新为31。最后,我们打印出obj,可以看到它的年龄已经被修改为31。

      需要注意的是,update()方法只修改旧值。如果你的值是一个函数,那么这个函数将被用来计算新值。如果你的值是一个数组,那么这个数组将被用来存储修改信息。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部