微信小程序开发实战-setData字段特别多时怎么办,试试动态遍历字段并提取赋值

举报
隔壁老汪 发表于 2022/09/02 22:24:22 2022/09/02
6k+ 0 0
【摘要】 概要: 小程序开发过程中,setData的双向绑定是必学的,本文通过对超多字段的动态赋值,深入讲解setData的用法。 需求场景 Page({ data: { p1: !1, p2: "", p3: "", p4: "",p5: "", ......很...

概要:

小程序开发过程中,setData的双向绑定是必学的,本文通过对超多字段的动态赋值,深入讲解setData的用法。

需求场景


      Page({
          data: {
              p1: !1,
              p2: "",
              p3: "",
              p4: "",
      p5: "",
      ......很多字段
      p50:""
      },
  
 

字段特别的多,小程序设置值的时候有如下方法:

在更改setData下的变量时,直接写key名就可以了的,不用写this.data.属性,如下所示

一、使用key value


      Page({
          data:{
              value:'hello'
          }
          this.setData({
          value:'修改的值'
          //错误写法:this.data.value:''
          //注意key的名称一定是data中的名称
      })
      })
      setData的第二个参数是一个回调函数,在页面渲染完后执行。
  
 

      this.setData({
            value:'hello'
          }, () => { //第二个参数
             console.log("在页面渲染完value后再执行");
          })
  
 

二、使用 中括号[]


      this.setData({
        '对象.属性名':属性值,
         ['对象.属性名']:属性值,
      )}
  
 

      //例子
      this.setData({
        'obj.newName': '新添加的名字',
        'obj.name': '修改成盲盒',
        ['obj.height']: ' 修改了30',
      })
  
 

对于上面几十个字段,这么set实在是不能忍,如何处理呢?

三、解决需求问题使用方法二

从接口提取数据后,通过遍历对象,将key 和value 提取

然后使用setData 赋值

直接上代码:


      // 请求接口返回 data 对象
      const data = e.Data;
      const keys = Object.keys(data)
      // 遍历key
      keys.forEach(function (item,key) {
       n.setData({
          [item] : ddxxData[item]
       });
      })
  
 

企业数字化转型是一场自我革新的艰苦探索

40家央企数字化转型路线图(2022版)

还在为XShell破解烦恼,试试Tabby

如何在 Jenkins Pipeline 中使用curl 并处理响应结果

点击链接看看吧 微信小程序开发教程

文章来源: blog.csdn.net,作者:隔壁老瓦,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wxb880114/article/details/126616665

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。