收藏
回答

setData 设置一个嵌套的map我该怎么做?


如图


已经解决了 应该这样 ,不要使用[]

self.setData({
  // [`sbData["${key}"]["${eRep.deviceName}-${eRep.equipmentId}"].state`] : 0
     [`sbData.${key}.${eRep.deviceName}-${eRep.equipmentId}.state`] : 0
})
最后一次编辑于  2020-04-07
回答关注问题邀请回答
收藏

4 个回答

  • 王建
    王建
    2020-04-07
    this.setData({
      [`sbData.${key}.${eRep.deviceName + '-' + eRep.equipmentId}.state`]: 0
    });
    
    this.setData({
     [`sbData.${key}.${eRep.deviceName}-${eRep.equipmentId}.state`]: 0
    });
    
    
    


    两种写法都可以。


    如果 key 不是数字,也就是说不是在设置数组,得用点 "." 拼起来。

    如果在设置数组的某一项,用方括号 []

    2020-04-07
    有用 2
    回复 1
    • p
      p
      2020-04-07
      嗯嗯 已经解决了 非常感谢
      2020-04-07
      回复
  • brave
    brave
    2020-04-07
    let sbData = `sbData[${key}][${eRep.deviceName}-${eRep.equipmentId}].state`;
    this.setData({
      [sbData]: 0
    });
    

    尝试一下这样写

    2020-04-07
    有用 1
    回复 2
    • p
      p
      2020-04-07
      Only digits (0-9) can be put inside [] in the path string: sbData["车间二"]["un00201-1"].state;at socketTask.onmessage callback function
      Error: Only digits (0-9) can be put inside [] in the path string: sbData["车间二"]["un00201-1"].state
      2020-04-07
      回复
    • brave
      brave
      2020-04-07回复p
      被你上面写的误导了。。。
      2020-04-07
      回复
  • 寒轩
    寒轩
    2020-04-07
    this.setData({
      [`sbData[${变量}][${变量}].state`] : 0
    })
    


    2020-04-07
    有用 1
    回复 6
    • p
      p
      2020-04-07
      好的 我试试 非常感谢
      2020-04-07
      回复
    • p
      p
      2020-04-07
      好的 我试试 非常感谢
      2020-04-07
      回复
    • p
      p
      2020-04-07
      报错啦
      2020-04-07
      回复
    • p
      p
      2020-04-07
      Only digits (0-9) can be put inside [] in the path string: sbData["车间二"]["un00201-1"].state;at socketTask.onmessage callback function
      Error: Only digits (0-9) can be put inside [] in the path string: sbData["车间二"]["un00201-1"].state
      2020-04-07
      回复
    • 寒轩
      寒轩
      2020-04-07回复p
      试试
      this.setData({
        [`sbData.${变量}.${变量}.state`] : 0
      })
      2020-04-07
      1
      回复
    查看更多(1)
  • p
    p
    2020-04-07
    sbData:{
          "车间一":{
            "un00101":{
              "name":"1号",
              "state":1
            },
            "un00102":{
              "name":"2号",
              "state":1
            },
            "un00103":{
              "name":"2号",
              "state":1
            },
            "un00104":{
              "name":"2号",
              "state":1
            },
            "un00105":{
              "name":"2号",
              "state":1
            },
          }
    }
    
    this.setData({
      sbData[变量][变量].state : 0
    })
    


    2020-04-07
    有用
    回复
登录 后发表内容
问题标签