收藏
回答

page方法中data里面使用数组,重新复制后,会出现undefined

话不多说,上代码:

data: {

//当前选择车牌是否是新能源车牌

isEnergy: false,

//当前输入的车牌信息

currentPlateNo : [1,2,3,5],

showPlateNo: "",

keyboard : {

//省份键盘属性

province: {

isShow: false,

keyboardType: 1

},

//数字键盘属性

numbers: {

isShow: false,

keyboardType: 2

}

},

confirmBtnUsable : false

}


操作方法,开始数组默认 1,2,3,5。点击事件后,

this.data.currentPlateNo = [];

this.setData(this.data);

但是看到日志打印出现了惊人的一幕。打印的和点开查看的不一样,数组竟然有长度,各位大神有遇到过的么?


截图如下:


回答关注问题邀请回答
收藏

2 个回答

  • 卢霄霄
    卢霄霄
    2018-11-01

    没展开的时候,这一排里显示的,是你console.log当时那一刻,这个变量的值。

    你展开的时候,如果这个变量还在内存里能找到,就会显示内存里当前的内容

    2018-11-01
    有用
    回复 3
    • 6仔🎶
      6仔🎶
      2018-11-01

      这个变量我不是已经设置为空数组了么?为什么还有一个长度呢?而且,经过测试,如果初始化数组是[1,2,3,4],后修改为[1,2,3]的话,打印出来(也就是data中存放的是[1,2,3,undefined])

      2018-11-01
      回复
    • 卢霄霄
      卢霄霄
      2018-11-01回复6仔🎶

      你console的时候,统统采用 JSON.parse(JSON.stringify(this.data)) 的方式,看看内容如何呢

      2018-11-01
      回复
    • 6仔🎶
      6仔🎶
      2018-11-01回复卢霄霄

      嗯,这样就不展示了。数组为[],但是页面上使用{{currentPlateNo[1]}},展示的是null。页面初始化的时候数组为[],展示的是空不是null

      2018-11-01
      回复
  • 纵倾童鞋ღ
    纵倾童鞋ღ
    2018-10-31


    this.data.currentPlateNo = [];
     
    this.setData(this.data);

    这种方式赋值不够稳妥,容易出现数据渲染不到问题,可以试试这样赋值看看还会不会出那个错误

    this.setData({
    currentPlateNo : []
    });


    2018-10-31
    有用
    回复 1
    • 6仔🎶
      6仔🎶
      2018-11-01

      老哥,依然会出现这个问题。好像不能这么赋值

      2018-11-01
      回复
登录 后发表内容