mathhater 2022-09-03 10:50 采纳率: 69.2%
浏览 39
已结题

nodejs vue中遇到参数传递不解析问题

在写nodejs,和vue的时候,想给data里面的maps动态添加属性,函数内容如下
addProperty:function(i,value){
this.maps.i=value
this.$forceUpdate()
}
比如,当外界调用addProperty函数的时候,当我传1给形参i,我想给maps属性添加一个属性名为1,值为value,当外界传2给形参i,我就能给maps添加一个属性名为2,值为value。
而实际代码运行的结果是,无论外界传什么参数给形参i,maps的属性名始终为i,而不会用外界的传递值替代,求解如何实现我的想法

  • 写回答

5条回答 默认 最新

  • web修理工 2022-09-04 13:02
    关注

    方法一

    
    addProperty:function(i,value){
    this.maps.[i]=value
    this.$forceUpdate()
    }
    

    方法二

    
    addProperty:function(i,value){
    this.$set(`maps[${i}]`,value)
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 崽崽的谷雨 2022-09-03 10:55
    关注
    
    addProperty: function(i, value) {
            this.maps[i] = value
            this.$forceUpdate()
        }
    

    js里对象 的属性如果是变量 可以用[属性名来赋值和取值]

    //这个就是 给 obj 加一个 动态的属性 a
        let a="tt";
        let obj={};
        obj[a]="888";
        console.log(obj)
    
    
    评论 编辑记录
  • Z_pigeon 2022-09-03 10:52
    关注

    这句写错了,i是变量,变量要用这种

    this.maps[i]=value
    
    
    评论
  • 明乐er 2022-09-04 01:10
    关注
    语法错误,js中的对象链式写法是针对已知属性,而你的属性是动态添加的所以要采用obj[属性名]=value,再提个建议不要强制更新,强制更新会消耗一定的性能
    评论
  • 易书生 2022-09-05 13:54
    关注

    把代码改成这样就可以了哦~

    addProperty:function(i,value){
      this.$set(`maps[${i}]`,value)
    }
    
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月14日
  • 已采纳回答 9月6日
  • 创建了问题 9月3日

悬赏问题

  • ¥15 关于网上一个easyx制作的见缝插针小游戏(c++)
  • ¥15 开地址法双散列函数处理碰撞
  • ¥15 想问一下这个是什么情况 虚拟机Linux打不开了
  • ¥15 联通光猫掉注册了怎么重新注册上去
  • ¥15 关于unity开发steamvr程序遇到的问题
  • ¥60 求tc downloader的下载方式
  • ¥15 华为 快捷方式 手电筒 接口
  • ¥15 Qt6.5支不支持Android13开发啊
  • ¥20 网络只能跑一半,应该如何设置
  • ¥20 Python调用百度开发者平台人脸识别接口