getCurrentPages()获取上一页数据后,setData当前页数据时会同步更新上一页数据?
发布于 4 年前 作者 qianjing 13564 次浏览 来自 问答

用getCurrentPages()引入上页数组变量,用this.setData({XX})更新本页数组变量,发现上页和本页变量一起被修改,用myPage=pages【pages.length - 1】,myPage.setData({}),也一样。我想通过“确定”键来修改上页数据,“返回”则不修改。

A页面有settitle数组

B页面:

  onShow: function () {

    var pages = getCurrentPages();

    var prevPage = pages[pages.length - 2]  //上一个页面

    this.setData({

      settitle:prevPage.data.settitle,

    })

  },

  onChange(event) {

    let key = event.currentTarget.dataset.key,

    value = event.detail,

    settitle = this.data.settitle

    settitle[key] = value

    this.setData({settitle})

  },

onChange执行后,上一页变量同时改变,这个是我代码有问题,还是getCurrentPages本来就是这样设定的?

谢谢各位大神解答。

1 回复

你代码的问题,原因琢磨下下面这段代码的输出结果就知道了

回到顶部