【发布时间】:2020-11-05 10:52:42
【问题描述】:
在 React 中有一个搜索栏,在我单击“打开”按钮后会显示。因为我使用 translateX 属性,所以搜索栏看起来很流畅。然后我想在这个搜索栏中的输入元素上使用 focus() 。我尝试使用参考。焦点出现了,但只要我按下按钮,它就会出现,并一直保持搜索栏从屏幕的一个部分移动到另一个部分(记住,这是因为我使用 translateX)。所以这一切都在我眼前。如何在屏幕上的搜索栏“到达目的地”后使焦点出现?我试过了
if (props.visibleSearchBar) {
ReactDOM.findDOMNode(inputRef.current).focus()
}
而不是
if (props.visibleSearchBar) {
inputRef.current.focus();
} // same story
const Search = (props) => {
let inputRef = useRef(null);
if (props.visibleSearchBar) {
inputRef.current.focus();
}
return (
<div>
<input ref={inputRef} />
</div >
)
【问题讨论】: