收藏
回答

生命周期函数无法获取修改后的data值

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug 生命周期函数 工具 8.0.2 1.05.2105182
hhtml代码
<button><navigator url="../home/index">跳转</navigator></button>
<button bindtap="f">++</button>
js代码
Page({
  data:{x:1},
  onShowfunction () {
    this.f()
  },
  f() {
    let {x} = this.data
    console.log(x);
    x++
    this.setData({x})
  },
})

每次调用f函数应该会让x自增1
t通过按钮++调用f函数确实能够实现x自增
但是在onShow生命周期函数中调用,却发现每次输出的x始终都是1,但事实上通过查看AppData中可以知道x的值为2




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

2 个回答

  • ㅤㅤ
    ㅤㅤ
    2021-05-22
    问题已经找到了,<button><navigator url="../home/index">跳转</navigator></button>
    
    在使用navigator返回时,需要设置open-type="navigateBack"。不然每次都会生成一个新的页面
    
    所以这不是官方的bug,是我的bug
    
    2021-05-22
    有用
    回复
  • Listen
    Listen
    2021-05-21

    你把console.log(x), 放在x++后边onShow()不就输出2了么?

    2021-05-21
    有用
    回复 1
    • ㅤㅤ
      ㅤㅤ
      2021-05-22
      对,是输出2了,但也只是输出了2,AppData中的数值不会变,或者说只能变一次,因为获取到的this.data始终是不变的。。。
      2021-05-22
      回复
登录 后发表内容