收藏
回答

组件中监听app.js的数据,可以获取到改变的全局变量,但是为啥无法给组件中的值重新赋值?

小程序正常页面引入,正常使用,

但是组件中,watchNum()方法中死活获取不到data,以及父页面传递过来的值,this打印是undefined

如果watchNum()方法不放到methods,中又无法执行


 // 1.app.js定义全局变量
  globalPassLength: {
    cursorShow:false
  },
  //app 全局属性监听
  watchfunction (method{
    var obj = this.globalPassLength;
    console.log(obj,'obg');
    Object.defineProperty(this"globalPassLength", { //这里的 globalData对应 上面 globalData 
      configurabletrue,
      enumerabletrue,
      setfunction (item//动态赋值,传递对象,为 globalData 中对应变量赋值
        obj.cursorShow = item.cursorShow
        method(item);
      },
      getfunction () //获取全局变量值,直接返回全部
        return obj;
      }
    })
  },

2.组件中使用
 attached() {
    app.watch(this.watchNum)
  },
methods:{
  watchNum(val) { //这里的val 就是 app.js 中 watch 方法中的 set, 返回整个 globalData
      console.log(val); //这里正常获取到改变的值
     
      this.setData({   //Cannot read property 'setData' of undefined
        cursorShow: val.cursorShow 
      })
    }
}


回答关注问题邀请回答
收藏
登录 后发表内容