冉小冉
冉小冉
  • 发布:2019-06-26 19:13
  • 更新:2023-10-11 15:34
  • 阅读:22677

uni-app 使用ucharts时,报错 Property or method "toJSON" is not defined

分类:uni-app

uni-app手机端使用ucharts绘制图标的时候,控制台报错。Property or method "toJSON" is not defined on the instance but referenced during render

2019-06-26 19:13 负责人:无 分享
已邀请:
一枚假程序猿

一枚假程序猿 - 一枚假程序猿

toJSON错误这个问题,解决方法是给showRing方法后边加个空toJSON方法

  • 2***@qq.com

    你这个方法倒是不报错了,但是我的会让页面的v-if里面的一个xxx==0的判断失效,具体原因不是很懂。

    2020-11-20 15:19

AntBin

AntBin

我终于找到一个满意的方案 哈哈哈

我也是看上面的朋友的方法在methods里面加一个 toJSON(){},我加上之后不报错了但是有副作用,把vue 中data的数据搞丢了.根据我测试确定是这个toJSON方法搞得鬼, 我没去看源码,但是我揣测可能的执行过程, 最终在toJSON 里面return this. 亲测有效,暂时没有发现其他副作用

4***@qq.com

4***@qq.com

按照官方文档这样写就好 ~

  • j***@163.com

    我就是这样写的,app

    端还是一样

    2020-03-19 11:47

dcsky

dcsky

这是微信开发者工具的bug,请回退微信开发者工具到2020年6月那个版本或之前版本(截止2020.11.10未修复),见文档:http://doc.ucharts.cn/1074674。我的也又再现此问题,不理他了。
另外确实在vue的export default里的methods里增加toJSON(){},就解决问题。

内心油腻

内心油腻

出现这个错误,应该是this指向的问题,总结一下几个处理方法

  1. 下载旧版微信开发工具,1.03.2006090
  2. 定义toJSON(){}方法
  3. ucharts对象定义到data外边
  4. 修改ucharts代码,在外面调用createCanvasContext,传给ucharts,而不传this
lero

lero

把报错页面的所有 console.log() 或者其他调试打印的 都去了可以解决此问题。

n***@163.com

n***@163.com

解决了么 我也遇到了相同的问题

  • 冉小冉 (作者)

    我是因为实例混乱引起的 把ucharts实例定义在全局 不要定义在vue里面就行

    2019-07-22 17:26

  • 1***@qq.com

    回复 冉小冉: 请问您说的在全局定义要怎样去写 可以贴一下关键代码吗 我也遇到这个问题 不知道怎么解决

    2019-09-30 09:58

  • 1***@qq.com

    回复 冉小冉: 我也碰到这个问题了,这个怎么解决?

    2020-08-28 08:32

1***@qq.com

1***@qq.com

求解决方案

  • 冉小冉 (作者)

    我是因为实例混乱引起的 把ucharts实例定义在全局 不要定义在vue里面就行

    2019-07-22 17:25

  • 1***@qq.com

    回复 冉小冉: 是定义在全局的,怎么还有这个报错,图表还显示不出来

    2020-09-16 10:34

XandL

XandL

不要把对象定义再Vue 的data中去,我这边是通过这种方式解决的

dcsky

dcsky

非常感谢大家的回答,我找这个问题2天了,除了百度别无他法。

一枚假程序猿

一枚假程序猿 - 一枚假程序猿

有解决的吗?

  • 9***@qq.com

    你这样定义一个空的toJSON 方法虽然没有报错,但总感觉有问题

    2020-09-27 16:28

  • 9***@qq.com

    我试了一下确实没有报错

    2020-09-27 16:29

suzi

suzi

我是微信小程序中报错,微信开发者工具升级到最新版本就没有问题了

d***@163.com

d***@163.com

我也是微信小程序中报错的,不过在组件中加一个toJSON方法就解决了

良非

良非

打印页面栈也会报错Property or method "toJSON" is not defined on the instance but referenced during render.
如果有这样的console.log( ),去掉后应该就好了

gocertain

gocertain

// #ifdef APP-PLUS
// app 没有会报错没有toJSON方法,小程序如果添加会覆盖原有方法报错
toJSON() {},
// #endif

要回复问题请先登录注册