开发中遇到ios中input获取焦点,需要一定的点击时长,经常无法一次成功获取焦点。
解决方法:在input控件外面包裹一层div,然后 在div上添加点击事件,为input手动获取焦点。
//tsx写法,先定义
1. private phoneInputs: HTMLInputElement[] = [];
2.
<div onClick={() => this.inputClicked(index)}>
<input
placeholder={item.text}
ref={(c) => {
this.phoneInputs.push(c);
}}
/>
</div>
3.
inputClicked = (i) => {
//可以设置点击标题 聚焦对应的输入框
let j = i;
if (i % 2 === 0) {
j += 1;
}
const val = this.phoneInputs[j];
this.phoneInputs[j].focus();
};
亲测很有效哦