NervJS / taro

开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
https://docs.taro.zone/
Other
35.34k stars 4.77k forks source link

input 设置 focus或者 auto-focus,进入页面后无法自动聚焦 #10579

Closed 491467928 closed 2 years ago

491467928 commented 2 years ago

相关平台

微信小程序

复现仓库

https://gitee.com/wwxxll/taro-test 小程序基础库: 2.20.1 使用框架: Vue 3

复现步骤

进入有设置focus的input的页面即可

期望结果

进入页面后input获得焦点,弹出输入键盘

实际结果

没有获得焦点

环境信息

 Taro CLI 3.3.12 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 14.17.5 - C:\Program Files\nodejs\node.EXE
      npm: 6.14.15 - C:\Program Files\nodejs\npm.CMD

补充信息

Taro版本是3.3.12

Chen-jj commented 2 years ago

@491467928 和 Vue3 的逻辑有冲突而导致。

注意 Vue3 shouldSetAsProp 这个方法:

https://github.com/vuejs/vue-next/blob/e7b0a9d3cffc938d3add7dcde02d0991f60c6ec9/packages/runtime-dom/src/patchProp.ts#L33-L60

Vue3 判断 focus 这个属性在 el 中,就把它作为 dom property 设置了,其实 Taro 希望它能作为 attribute 设置。