html5teacher
html5teacher
  • 发布:2022-08-31 13:43
  • 更新:2022-08-31 16:12
  • 阅读:796

【报Bug】uniCloud在微信小程序中无法正常使用

分类:uniCloud

产品分类: uniCloud/App

操作步骤:

建任意uni-app项目,关联云空间,读取某个表数据,使用JQL语法,在H5下面工作正常,在微信开发者工具中报错,

export default {  
        data() {  
            return {  
                title: 'Hello',  
        db:uniCloud.database()  
            }  
        },  
        onLoad() {  
                          this.db=uniCloud.database();//只要这一句都会报错  
        },  
        methods: {  

        }  
    }  

预期结果:

正确读取uniCloud中表数据并显示

实际结果:

H5正常,微信小程序报错:
vendor.js?t=wechat&s=1661921889597&v=1c6ca96d48a7ba7bd12b1a5aee79e805:8626 TypeError: Converting circular structure to JSON
--> starting at object with constructor 'At'
| property '_uniClient' -> object with constructor 'V'
| property '_database' -> object with constructor 'Object'
--- property '_database' closes the circle
at JSON.stringify (<anonymous>)
at cloneWithData (vendor.js?t=wechat&s=1661921889597&v=1c6ca96d48a7ba7bd12b1a5aee79e805:8611)
at VueComponent.patch [as patch] (vendor.js?t=wechat&s=1661921889597&v=1c6ca96d48a7ba7bd12b1a5aee79e805:8624)
at VueComponent.Vue._update (vendor.js?t=wechat&s=1661921889597&v=1c6ca96d48a7ba7bd12b1a5aee79e805:6952)
at VueComponent.updateComponent (vendor.js?t=wechat&s=1661921889597&v=1c6ca96d48a7ba7bd12b1a5aee79e805:8692)
at Watcher.get (vendor.js?t=wechat&s=1661921889597&v=1c6ca96d48a7ba7bd12b1a5aee79e805:7415)
at new Watcher (vendor.js?t=wechat&s=1661921889597&v=1c6ca96d48a7ba7bd12b1a5aee79e805:7404)
at mountComponent$1 (vendor.js?t=wechat&s=1661921889597&v=1c6ca96d48a7ba7bd12b1a5aee79e805:8698)
at VueComponent.define.push.Vue.$mount (vendor.js?t=wechat&s=1661921889597&v=1c6ca96d48a7ba7bd12b1a5aee79e805:9031)
at Uo.attached (vendor.js?t=wechat&s=1661921889597&v=1c6ca96d48a7ba7bd12b1a5aee79e805:2253)(env: Windows,mp,1.06.2208010; lib: 2.25.4)

bug描述:

从uniCloud的数据表中读取数据,H5端测试没有任何问题,在微信小程序开发者工具中直接报错,经排查,只要使用了云数据库就会出错,哪怕只使用一句:this.db=uniCloud.database();

HBuilderX版本:3.5.3.20220729
微信开发者工具版本:stable.1.06.2208010

2022-08-31 13:43 负责人:无 分享
已邀请:
DCloud_uniCloud_CRL

DCloud_uniCloud_CRL

uniCloud.database() 不能再data中定义,会出现循环引用问题。

  • html5teacher (作者)

    上面那句我忘了注释了,下面才是正确的代码:

    data() {

    return {

    title: 'Hello',

    books:[],

    db:null

    }

    },

    onLoad() {

    this.db=uniCloud.database();

    this.db.collection('books').get().then(res=>{

    console.log(res.result.data);

    this.books=res.result.data;

    }).catch(err=>{

    console.log(err);

    });


        }

    2022-08-31 15:51

  • html5teacher (作者)

    我重新建的空白项目,在H5中完全正常,但微信开发者工具中就是要报错

    2022-08-31 15:52

html5teacher

html5teacher (作者)

好了,解决了,必须在<script>标签一开始时就进行初始化,类似于
<script>
const db=uniCloud.database();
export default {...}
</script>
但是,为啥H5没问题,微信开发者工具就不行呢?

该问题目前已经被锁定, 无法添加新回复