美文网首页
vue踩坑记录之变量赋值同步修改

vue踩坑记录之变量赋值同步修改

作者: 毕竟1米八 | 来源:发表于2019-01-10 22:16 被阅读860次

最近用vue写上拉加载下拉刷新的demo时遇到了一个问题。在生命周期onload函数里把变量B赋值给变量A,在执行上拉加载时,变量A的数据发生了变化,这时变量B的数据也跟着发生了变化。

封面.jpg

一、问题如下

//默认加载第一页的数据
onload() {
  this.list = this.page1;
},
//加载第二页的数据 这里变量list的值发生了变化
load() {
  if(this.isClick){
    var obj = {};
    var page2 = this.page2;
    for(let i in page2){
      obj = {
        title: page2[i].title
      };
      // console.log(obj);
      this.list.push(obj);
    };
    // console.log(this.list);
    //设置为false 禁止再次点击
    this.isClick = false;
    this.dis = true;
    this.text = "暂无数据";
  }
}

在执行上拉加载函数load()中变量list的值发生了变化,因此变量page1的值也跟着发生了变化。这也就造成了一个问题,在执行下拉刷新函数this.onload()时重新请求第一页的数据再也不是原始的初始化数据。也就不能正确的获取到第一页的数据。因此,我们需要解决这个问题。

二、解决方法
先把变量page1转换成字符串,然后再转换成对象即可。

onload() {
  this.list = JSON.parse(JSON.stringify(this.page1));
}

相关文章

网友评论

      本文标题:vue踩坑记录之变量赋值同步修改

      本文链接:https://www.haomeiwen.com/subject/sfvorqtx.html