收藏
回答

【BUG】skyline 3.10.x基础库下,部分情况组件第一次被渲染,样式会丢失

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信安卓客户端 8.0.62/8.0.63 3.10.0

代码片段提供了比较小的可复现demo,具体的场景应该还有其他的。

我们业务比较复杂,复现这个问题形成最小demo花了好久..

实际应该从3.9.x开始就存在这个问题,3.10.0是目前主要复现的基础库。

表现如下:

第一次进入页面,组件样式丢失,第二次进入样式正常渲染

第二个页面是子包页面,第一个页面引入了子包的一个组件,作为异步组件,但是因为有显隐条件,暂时不渲染出来。

这种情况下第二个页面也引用了这个组建,样式就会丢,但是要像demo里的这种组建组合才行,把第二个页面的两个组件在模板里交换位置..样式渲染也是正常的

最后一次编辑于  09-12
回答关注问题邀请回答
收藏

3 个回答

  • 小程序技术专员-SgLy
    小程序技术专员-SgLy
    09-12

    确认到问题了,确实是片段里这个特定的时序的时候,3.9.1 引入的一个优化会有点问题

    我们尽快修复上线,非常感谢~

    09-12
    有用
    回复
  • 阿然
    阿然
    09-12

    实际业务中已经有几个场景碰到这个问题,表现一致,但是解决方法不太一样。

    例如当前这个demo中,需要在子包的页面中把两个组件都声明componentPlaceholder,然后控制第一个组件晚于第二个组件渲染,就能解决问题,这个和调换顺序能好的原理应该是同一个,后渲染就行。

    另一个场景是slot的场景,父组件配置componentPlaceholder就能恢复。这个场景没有研究最小复现demo。

    09-12
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    09-12
    有用
    回复 1
    • 阿然
      阿然
      09-12
      1. 是
      2. 未确认
      3. 内联样式OK,样式文件里的丢失
      4. 开发者工具里表现正常,没事什么参考意义
      09-12
      回复
登录 后发表内容