白羽
白羽
  • 发布:2020-04-21 06:14
  • 更新:2020-04-22 18:05
  • 阅读:1275

【报Bug】2.6.10+各版本的text解析‘\n’错误!

分类:uni-app

demo地址:https://ext.dcloud.net.cn/plugin?id=1243

基于HbuilderX 2.6.10 -alpha及更早版本编写的数学公式组件,其所有text组件均能可靠解析'\n'换行符;但升级至HbuilderX 2.6.12 -alpha、HbuilderX 2.6.13 -alpha、HbuilderX 2.6.14 -alpha等各版本后,均不能可靠解析text组件的'\n'换行符:在同一个页面中的多个text组件中,随机出现大部分text组件无法解析'\n'换行符,少部份则能。

复现办法:在插件试市场下载 数学公式组件,先使用HbuilderX 2.6.10 -alpha或更早版本进行编译,结果在APP和H5端均正常显示;再使用HbuilderX 2.6.12 -alpha、HbuilderX 2.6.13 -alpha、HbuilderX 2.6.14 -alpha编译,结果在APP和H5端均混乱显示,'\n'换行符随机解析和不解析。

另一个bug:V3版本的递归组件的JS代码在APP端和H5端出现如下不兼容现象:APP端查找某个组件的第i个v-for子节点,用this.$children[i]即可找到;但在H5端,则必须用this.$children[0].$children[i].从而导致APP端与H5端的代码的不兼容和需要适配。(小程序端尚未测试)

2020-04-21 06:14 负责人:无 分享
已邀请:

最佳回复

DCloud_UNI_GSQ

DCloud_UNI_GSQ

HBuilderX 2.6.15 已修复

白羽

白羽 (作者)

进一步核实:首尾的'\n'换行符无法解析,中间的'\n'换行符则能够解析。

DCloud_UNI_GSQ

DCloud_UNI_GSQ

bug确认,已加分,后续修复

  • 白羽 (作者)

    好的。顺带请教几个问题。

    1、uniapp在所有版本的HbuilderX下编译的text组件,均无法通过uni.createSelectorQuery().in(this)方式获取其节点边界信息。请问这是设计上的bug,还是官方有意设计成这样的呢?从我本人的设计需求来说,是需要获取的text的节点边界信息的。

    2、为了获取到text的节点边界信息,我采用了如下变通方案:


    <view class="view">  
    <text class="text">{{text}}</text>
    </view

       data: function() {  
    return {
    text: '\n首尾带换行符的文本组件\n'
    }
    }

    .view {  
    display: inline;
    }

    在这种情况下,view容器的边界近似于代表了text的边界,实现了变通。但依然存在两个问题:



    • 若text的内容的首或尾出现换行符'\n',则view边界并未包裹该换行符,即换行符的位置游离于边界之外,从而导致边界信息的top偏大而bottom偏小;

    • 若text的内容的首或尾出现换行符'\n',且在该text的前、后分别插入一个含有零宽字符的text组件(如下面的代码所示),则view边界就能够将text内容的首和尾处的换行符包裹在内,从而获得text的正确的边界信息。
      <view class="view">  
      <text>&#x200b</text>
      <text class="text">{{text}}</text>
      <text>&#x200b</text>
      </view

      综上,我想请教的两个问题是:

      1、官方是否可以将text组件设计为可以通过uni.createSelectorQuery().in(this)获取边界信息?

      2、假如可以,是否可以将text的边界设计为包裹首尾换行符,或者设计为通过上述<view>变通方案实现时直接包裹首属换行符(而不是必须在首换行符之前,尾换行符之后分别添加零宽字符才能实现包裹首尾换行符)呢?



    项目中急需用到上述需求,恳请官方回复哈!uniapp非常强大,解决上述问题后,我就可以完成基于uniapp实现的、运行于移动端的、输入体验媲美PC端WPS文字和MS Word文档的、完善的带数理公式编辑能力的富文本文档编辑器了。最后,祝uniapp蒸蒸日上!

    2020-04-22 03:18

  • DCloud_UNI_GSQ

    回复 白羽: 这个问题只存在于H5和App吗?小程序平台是否存在?

    2020-04-22 10:39

  • 白羽 (作者)

    回复 DCloud_UNI_GSQ: 小程序暂时没有测试。我试试,稍后回复。

    2020-04-22 11:18

  • 白羽 (作者)

    回复 DCloud_UNI_GSQ: 已实测,在H5、APP和微信小程序下,均复现这个问题。

    2020-04-22 14:53

5***@qq.com

5***@qq.com - Zhi男

你们是猴子派来的吗 app云打包后 怎么多了个<br>
hbuilderx2.5.1就没有

  • DCloud_UNI_GSQ

    你应该是使用的v3编译模式,已确认此处有差异,后续会更新兼容,可以先把代码里标签和文本放到一行,如:<text>示例文本</text>

    2020-04-22 19:41

  • 岁月无声

    噗!害!

    2020-04-27 09:50

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