使用taro遇到的问题及总结

2021-06-27  本文已影响0人  xurna
现象
原因:一开始觉得是页面组件的卸载有问题,返回时点击获取的$refs实际上是第二个页面卸载的页面的$refs,所以取的不是当前第一个页面的$refs。经过分析,发现点击按钮上有个id,导致返回时触发的点击实际上第二个页面的点击事件,但是第二个页面已经卸载了,所以取不到。
原因

总结:小程序文档里id是整个页面唯一,所以导致点击的时候触发获取对象异常。h5中页面跳转则是通过设置页面display:block/none处理,如果当前页面有同个id,则也会导致获取id对象不对的情况。所以尽量不用id,而用ref,确实要用的话,需要随机生成id值,确保前后页面不存在相同id。(后续可新增生成随机尾号id的工具方法)



注:据同事了解,层级较深也有可能获取不到动态生成的id,这里可以留意下。

.root-css-name{
  .your-css{
    //...
  }
}
<input
 id="hxwsCode"
 v-model="code"
 type="number"
>
// js
document.getElementById('hxwsCode').firstChild.blur();
// 主动收起键盘
if (this.isInMiniProgram) {
  Taro.hideKeyboard()
} else {
  document.getElementById('hxwsCode').firstChild.blur();
}
上一篇下一篇

猜你喜欢

热点阅读