uniapp [Vue warn]: Error in onLoad hook: “TypeError: Attempting to change the setter of an unconfigu

这篇具有很好参考价值的文章主要介绍了uniapp [Vue warn]: Error in onLoad hook: “TypeError: Attempting to change the setter of an unconfigu。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景 

用uniapp开发微信小程序时候发现报这个错误,记录下我是如何解决的!

二、报错信息

uniapp [Vue warn]: Error in onLoad hook: "TypeError: Attempting to change the setter of an unconfigurable property."

三、错误原因

由于在Object.defineproperty方法中,控制属性不可以被删除,unconfigurable 状态。

四、错误分析

我们来看下Object.defineproperty方法的具体使用:

Object.defineproperty 的作用就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性

Object.defineproperty 参数

        Object.defineproperty方法需要传递3个参数

        Object.defineproperty(obj, prop, desc  )   

        参数1:obj     需要定义属性的当前对象

        参数2:prop    当前需要定义的属性名

        参数3:desc    描述符 一般是一个对象

        一般通过为对象的属性赋值的情况下,对象的属性可以修改也可以删除,但是通过Object.defineProperty()定义属性,通过描述符的设置可以进行更精准的控制对象属性。

Object.defineProperty(obj, variate, {
                enumerable:true, //控制属性是否可以枚举,默认值是false
                //writable:true, //控制属性是否可以被修改,默认值是false
                configurable:true, //控制属性是否可以被删除,默认值是false
                set: function (value) {
                    console.log('global set value!');
                    val = value; // 重新赋值
                    const data = {};
                    data[variate] = value;
                    console.log('page set value!');
                    page.setData(data);
                },
                get: function () {
                    console.log('global get value!');
                    // 在其他界面调用getApp().globalData.variate的时候,这里就会执行。
                    return val; // 返回当前值
                }
            });

最后还有最重要的两个属性 setget(即存取器描述:定义属性如何被存取),这两个属性是做什么用的呢?

注意:当使用了getter或setter方法,不允许使用writable和value这两个属性(如果使用,会直接报错滴)

五、解决办法

本次的错误,是 configurable 的值被设置成 FALSE 导致的,所以改成 TRUE 即可!注意看控制台的错误提示,也许你的是其他情况报错!文章来源地址https://www.toymoban.com/news/detail-544388.html

到了这里,关于uniapp [Vue warn]: Error in onLoad hook: “TypeError: Attempting to change the setter of an unconfigu的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包