收藏
回答

简易双向绑定,如果属性是数组会导致栈溢出?

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信iOS客户端 8.0.37 2.30

写了一个图片选择器组件<images>,定义了数组类型的list属性,父组件中用了双向绑定:

<images model:list="{{selectedImages}}" />


子组件内只要调用 this.setData({list:[]}) 就会报错:Maximum call stack size exceeded

https://developers.weixin.qq.com/miniprogram/dev/framework/view/two-way-bindings.html

看文档中并没有限制双向绑定属性的数据类型,所以是底层的bug吗?

回答关注问题邀请回答
收藏

2 个回答

  • 那一抹笑😃 穿透阳光
    那一抹笑😃 穿透阳光
    2023-06-12

    这个提示语,就是说你的代码出现了死循环,一直在setData数据

    2023-06-12
    有用
    回复 1
    • 小白
      小白
      2023-06-21
      是的,但是实际上只有一个setData调用,除非微信底层事件处理出了问题
      2023-06-21
      回复
  • showms
    showms
    2023-06-10

    Maximum call stack size exceeded这个报错是说setData次数太多了,得你自己排查看看是不是有死循环setData

    2023-06-10
    有用
    回复 5
    • 小白
      小白
      2023-06-10
      没有,就是双向绑定导致的,如果把父组件中的model:去掉就不会有这个报错了
      2023-06-10
      回复
    • showms
      showms
      2023-06-10回复小白
      把能复现问题的代码贴出来把
      2023-06-10
      回复
    • 小白
      小白
      2023-06-10
      2023-06-10
      回复
    • showms
      showms
      2023-06-10回复小白
      parentList哪里来的?
      2023-06-10
      回复
    • 小白
      小白
      2023-06-21回复showms
      随便传个数组就行啊
      2023-06-21
      回复
登录 后发表内容