需求:进入和返回页面(页面栈不删除的情况下)中的input自动获取焦点并光标位置在最后。此方法适用于input/u-input
// 因为当重复设置某些属性为相同的值时,不会同步到view层。
//遇到 focus 属性设置不生效,需要对focus属性进行重置。
<view>
<u-input placeholder="请输入" v-model="searchValue" :focus="focusFlag"
:cursor="cursorL" margin="16rpx 0" @confirm="search" @search="search">
<template slot="suffix">
<view class="searchbtn" @click="search(searchValue)">
搜索
</view>
</template>
</u-input>
</view>
data() {
return {
focusFlag: true,
cursorL: 0
}
}
onShow() {
this.getFocus()
},
methods: {
getFocus() {
// 因为当重复设置某些属性为相同的值时,不会同步到view层。
//遇到 focus 属性设置不生效,需要对focus属性进行重置。
this.focusFlag = false
setTimeout(() => {
this.focusFlag = true
this.cursorL = 999
}, 100)
}
}
问题待修复:返回到页面中在onshow中设置自动获取焦点了,但软键盘未弹出。但如果使用点击事件触发方法,软键盘可以弹出。在线求解
曲线救国方案就是删除当前页面栈,返回重新进入页面。软键盘就会弹出。