收藏
回答

疑似bug,不能中立。组件问题,看我提供截图和问题描述。

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug 自定义组件 微信iOS客户端 8.0.1 2.14.1

这是一个坑,不过可能其他人不会中。我有一个主页面与子页面,主页面跳转到子页面。两个页面用了同一个组件。按理说两个页面的组件应该毫无关系的。可是我发现有关系了。并且这个关系很混乱。产生问题的经过是:我主页面跳转到子页面,然后再从子页面跳转回主页面后,主页面引用的自定义组件事件失效了,然后我找问题,发现组件事件函数没调用,也就是失效了。然后我开始实验并怀疑组件实例被串改,结果发现跳转前与跳转后回来在主页面内点击组件后打印组件自身结果不一致,某个好像标识组件唯一性的id不一样,也就是说跳转前后的组件不是同一个组件。那么最终导致我的主界面调用组件产生的事件没有再次被触发。而出现这种问题的前提是,我用页面往组件公共属性传了一个对象,而这个对象里的方法用来给组件事件处理函数调用,也就是说,我想组件最终会通过这个对象获取一个对象,这个对象里的方法还会处理到主页面里的数据。

如果这不是一个bug的话我想按我的理解我这程序是不会出问题的,前提是主页面引用的组件实例没有被替换成子页面的的组件,也就是说页面与组件直接一一对应。但是通过我的实验发现,从子页面返回主页面后,主页面的组件被替换成了子页面的组件。为何这么说,因为里面的一个id变了,并且传递给组件的对象也变成了子页面里的数据。

这是跳转到子页面前打印的主页面内的组件自身信息。

这是跳转后返回后再次在主页面打印组件自身的信息,

两个信息不一样,可见组件被替换了。按理说连个页面的组件应该没有任何联系啊,为何却因此而产生了复杂关系,从而产生错误。还望官方给出解释。

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

1 个回答

  • 耿霄
    耿霄
    2021-03-06

    建议搞个代码片段,描述期待得到效果和实际得到效果

    2021-03-06
    有用
    回复 2
    • chen阿根
      chen阿根
      2021-03-06
      不想搞代码片段,看得明白就看吧,我已经避免类似问题出现了。我期待的效果是每个页面的组件与其他页面的同样的组件不要有任何关联。实际得到的效果是一个页面的组件被另一个页面的相同类别的组件给替换了。两个组件应该同属于一个类,两个组件的实例不会出现在其他页面,这是我期待的,也是应该这样才算正常。然而,却出现了混乱。
      2021-03-06
      回复
    • chen阿根
      chen阿根
      2021-03-06
      上图描述吧
      2021-03-06
      回复
登录 后发表内容
问题标签