taro 在vue3中使用KeyboardAccessory这个自定义键盘的组件,无效

7d7tgy0s  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(46)

相关平台

微信小程序

小程序基础库: 3.3.4
使用框架: Vue 3

复现步骤

根据文档,配置
// config/index.js
{
// ...
plugins: [
['@tarojs/plugin-platform-weapp', {
enablekeyboardAccessory: true
}]
]
}

并在代码中

<textarea :hold-keyboard="true">
    <keyboard-accessory class="container" style="height: 200px;">
      <cover-view bindtap="tap" style="flex: 1; background: green;">1</cover-view>
      <cover-view bindtap="tap" style="flex: 1; background: red;">2</cover-view>
    </keyboard-accessory>
</textarea>

期望结果

期望在vue3中可以使用KeyboardAccessory这个组件;

实际结果

实际是设置了没有用,在键盘顶部没有出现自定义的文本或者模块

环境信息

Taro CLI 3.6.23 environment info:
    System:
      OS: Windows 11 10.0.22621
    Binaries:
      Node: 18.17.1 - C:\Program Files\nodejs\node.EXE
      Yarn: 1.22.19 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
      npm: 9.6.7 - C:\Program Files\nodejs\npm.CMD
    npmPackages:
      @tarojs/cli: 3.6.24 => 3.6.24
      @tarojs/components: 3.6.24 => 3.6.24
      @tarojs/helper: 3.6.24 => 3.6.24
      @tarojs/plugin-framework-vue3: 3.6.24 => 3.6.24
      @tarojs/plugin-html: ^3.6.24 => 3.6.24
      @tarojs/plugin-platform-alipay: 3.6.24 => 3.6.24
      @tarojs/plugin-platform-h5: 3.6.24 => 3.6.24
      @tarojs/plugin-platform-jd: 3.6.24 => 3.6.24
      @tarojs/plugin-platform-qq: 3.6.24 => 3.6.24
      @tarojs/plugin-platform-swan: 3.6.24 => 3.6.24
      @tarojs/plugin-platform-tt: 3.6.24 => 3.6.24
      @tarojs/plugin-platform-weapp: 3.6.24 => 3.6.24
      @tarojs/runtime: 3.6.24 => 3.6.24
      @tarojs/shared: 3.6.24 => 3.6.24
      @tarojs/taro: 3.6.24 => 3.6.24
      @tarojs/taro-loader: 3.6.24 => 3.6.24
      @tarojs/webpack5-runner: 3.6.24 => 3.6.24
      babel-preset-taro: 3.6.24 => 3.6.24
      eslint-config-taro: 3.6.24 => 3.6.24
ejk8hzay

ejk8hzay1#

应该是是因为 vue 新出的 parser 做的优化引起的,识别到 textarea 组件做了特殊处理

https://github.com/vuejs/core/blob/db374e54c9f5e07324728b85c74eca84e28dd352/packages/compiler-core/src/tokenizer.ts#L223-L225
https://github.com/vuejs/core/blob/db374e54c9f5e07324728b85c74eca84e28dd352/packages/compiler-core/src/tokenizer.ts#L876-L877

如果组件改成 import {Textarea} from "@tarojs/components"; 同时修改taro 源码兼容应该可以解决,但是与目前taro规范冲突
https://docs.taro.zone/docs/vue-overall#taro-%E8%A7%84%E8%8C%83

相关问题