d***@junrunrenli.com
d***@junrunrenli.com
  • 发布:2024-07-23 20:04
  • 更新:2024-07-24 17:47
  • 阅读:261

【报Bug】【重大bug】undefined的值没有同步到小程序data

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

手机系统: Android

手机系统版本号: Android 13

手机厂商: 小米

手机机型: 小米14pro

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: CLI

CLI版本号: 4.23

示例代码:
export default {    
    data() {    
      return {    
        test: '123'    
      }    
    },    
    onLoad() {    
      this.test = undefined    
    },    
    methods: {}    
  }

操作步骤:

见代码

预期结果:

将data里的值变为undefined的时候,小程序data中应该移出相应字段

实际结果:

将data里的值变为undefined的时候,小程序data中相应字段的值还是上一次的值

bug描述:

data中的值设置为undefined之后,小程序中的值没有变

2024-07-23 20:04 负责人:无 分享
已邀请:
d***@junrunrenli.com

d***@junrunrenli.com (作者)

刚刚测试了一下手动设置,我把原来是布尔类型的值设置为undefined, 也是没有更新到小程序data

 if (e.index === 0) {  
          this.isOrgLogs = true  
        } else {  
     //没有生效,还是为0时设置的true  
          this.isOrgLogs = undefined  
        }
  • d***@junrunrenli.com (作者)

    再次测试了数字,字符串,都没有把undefined同步到小程序data,按理说应该要在小程序data里删掉为undefined的字段

    2024-07-23 20:27

  • d***@junrunrenli.com (作者)

    变更为undefined后再手动调用this.$mp.page.setData一次,可以从小程序data中删除该字段

    2024-07-23 20:33

  • DCloud_UNI_yuhe

    回复 d***@junrunrenli.com: 你好,我这看着你给出的示例有点不大确定你想如何改变computed,你能发一个完整的测试项目吗?

    2024-07-23 20:38

  • d***@junrunrenli.com (作者)

    回复 DCloud_UNI_yuhe: 不用computed,正常设置data也有问题

    2024-07-23 21:23

d***@junrunrenli.com

d***@junrunrenli.com (作者)

cli版本号2.0.2-alpha-4020320240628001

d***@junrunrenli.com

d***@junrunrenli.com (作者)

官方赶紧核实下

d***@junrunrenli.com

d***@junrunrenli.com (作者)

@DCloud_UNI_yuhe
我现在下班了,没法发代码

不用computed也能复现

data中的值

{    
isOrgLogs:true    
} 

methods中修改isOrgLogs为undefined,小程序中data里面的isOrgLogs还是true,按理说设置为undefined之后应该从小程序data中移除这个字段

d***@junrunrenli.com

d***@junrunrenli.com (作者)

上班了,官方赶紧看下

d***@junrunrenli.com

d***@junrunrenli.com (作者)

示例如下

export default {  
    data() {  
      return {  
        test: '123'  
      }  
    },  
    onLoad() {  
      this.test = undefined  
    },  
    methods: {}  
  }

代码已经将test 设置为undefined了,小程序data中这个字段还在是为什么

d***@junrunrenli.com

d***@junrunrenli.com (作者)

官方有没有在看,急急急啊

  • DCloud_UNI_yuhe

    行稍等我看一下

    2024-07-24 10:36

  • d***@junrunrenli.com (作者)

    回复 DCloud_UNI_yuhe: 请问有结论吗?

    2024-07-24 13:39

  • DCloud_UNI_yuhe

    回复 d***@junrunrenli.com: uniapp由于要适配不同平台,因此并不能保证所有的特性都与vue一致,这种方法是我们不推荐的方法,微信小程序由于兼容问题,会有各种各样的bug,之前有一个类似的问题,也是undefined的问题,最好看的是微信小程序的问题。

    2024-07-24 13:45

  • d***@junrunrenli.com (作者)

    回复 DCloud_UNI_yuhe: 不能将已有数据设置成undefined?这影响很大呀,有时候服务器没有返回响应数据,就会变成undefined

    2024-07-24 13:55

  • d***@junrunrenli.com (作者)

    回复 DCloud_UNI_yuhe: 而且我手动调用this.$mp.page.setData({

    test: undefined

    })是没问题的

    2024-07-24 13:56

d***@junrunrenli.com

d***@junrunrenli.com (作者)

https://ask.dcloud.net.cn/question/141949

原来一直都有,从来没修复,牛的,最基本的set数据都能有问题

要回复问题请先登录注册