收藏
回答

同一页面引用多次自定义组件,数据永远只更新第二次引用的地方?

同一个页面引用两次语音转文字的自定义组件,每次语音的结果都只更新在第二次引用的输入框中(主题处语音输入,但得到的结果却更新在描述的字段中,描述处字段的语音结果正常更新在描述处)

引用处

 
        <van-field name="titleContent" model:value="{{titleContent}}" label="主题:" required placeholder="请输入" bind:change="onTitleChange">
          <voice slot="right-icon" model:voice-value="{{titleContent}}" model:size="30"></voice>
        </van-field>
       
      
        <van-field name="desc" model:value="{{desc}}" label="描述:" type="textarea" autosize placeholder="请输入" bind:change="onDescChange" required>
          <voice slot="right-icon" model:voice-value="{{desc}}" model:size="22"></voice>
        </van-field>


最后一次编辑于  2023-04-17
回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    2023-04-17

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2023-04-17
    有用
    回复 4
    • 呦呦路鸣
      呦呦路鸣
      2023-04-18
      测试号不能添加语音插件
      2023-04-18
      回复
    • 呦呦路鸣
      呦呦路鸣
      2023-04-18
      https://developers.weixin.qq.com/s/b5NNSymo7SHO
      2023-04-18
      回复
    • 呦呦路鸣
      呦呦路鸣
      2023-04-18
      使用的是微信同声传译插件,测试的结果是voice组件在index页面调用两次,第一个组件的语音翻译结果和第二个组件的语音结果都给了第二处的输入框
      2023-04-18
      回复
    • 呦呦路鸣
      呦呦路鸣
      2023-04-18
      正式版本用的基础库是2.4.0,代码复现片段的基础库是2.31.0,使用的测试手机的iPhone13,系统版本15.5  微信版本号8.0.32
      2023-04-18
      回复
  • 常东
    常东
    2023-07-04

    原因及解决方法:

    原因:

    根据题主https://developers.weixin.qq.com/community/develop/article/doc/0004c2cf8303304cedafaabff56813 这篇文章的解决方法可以知道,导致这个问题的主要原因是,无论有多少的声音转文字组件,这些组件都共享一个全局的声音转文字的manager,也就是 getRecordRecognitionManager此方法的返回值。

    所以就会导致在所有的监听方法无论是onStart还是onError,onStope,都会以最后一次绑定的为准。(js的对象为引用特性,更改一个地方其他地方都会受到影响。)

    因此出现了无论更改那哪个,都只会在最后一个生效的问题。

    解决:

    题主的方法就可以解决,如果想要更详细的,根据上面的原因亦可灵活解决。

    下图为本人的一个类似解决方法。

    2023-07-04
    有用
    回复
  • 呦呦路鸣
    呦呦路鸣
    2023-04-17

    实验了一下:只存在一次调用自定义组件,数据更新正常

    更换了上下两次调用的自定义组件的位置,发现结果永远只更新在最后一次调用自定义组件的位置

    2023-04-17
    有用
    回复 1
登录 后发表内容