javascript - 反应用户引用不向字段添加焦点状态
问题描述
我一直在尝试为此寻找解决方案,我想将焦点状态添加到我的输入字段中。但它似乎不起作用:
const textareaRef = useRef<HTMLInputElement>(null);
...
const handleClick = () => {
if (textareaRef.current) {
alert('Field clicked');
textareaRef.current.focus();
textareaRef.current.click();
}
};
...
<input
ref={textareaRef}
onClick={handleClick}
onFocus={(e) => e.persist()}
spellCheck="false"
/>
这不起作用,主要原因是显示移动键盘。在这里看视频它不起作用https://share.getcloudapp.com/jkuYLqO5在这里没有警报https://share.getcloudapp.com/wbuKwrLE
解决方案
我无法在桌面浏览器上重现该错误。录屏是什么浏览器?
function App() {
const textareaRef = React.useRef();
const handleClick = () => {
if (textareaRef.current) {
console.log('Field clicked');
textareaRef.current.focus();
}
};
return (
<div>
<div onClick={handleClick}>click me to focus input</div>
<input
ref={textareaRef}
onFocus={(e) => e.persist()}
/>
</div>
)
}
ReactDOM.render(
<App />,
document.getElementById('root')
)
<script src="https://unpkg.com/react@16.14.0/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@16.14.0/umd/react-dom.production.min.js"></script>
<div id="root"></div>
推荐阅读
- java - 如何检测屏幕显示内容的变化?
- typescript - ValidationContext 已声明但它的值从未被读取?
- google-chrome - Chrome 不尊重主机文件条目
- android-room - 使用 Room 自动持久化双向数据绑定的更改?
- css - 无法到达 CSS 节点
- python - Selenium/Chrome/ChromeDriver 问题阻止 VPS 上的爬网(DevToolsActivePort 文件不存在)
- r - 在 R 的 list() 中创建条件(更改)名称
- bootstrap-4 - Bootstrap 4个相同高度的卡片列
- azure-data-factory-2 - ADF v2 复制活动,将有关活动的详细信息记录到数据库表
- c - 如何创建比浮点 ANSI C 具有更多小数位数的变量