相关平台
微信小程序
小程序基础库: 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
1条答案
按热度按时间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