你需要两样东西,
useRef
和
useEffect
,
useRef
用于获取目标元素ref,以及
使用效果
用于在组件渲染时处理聚焦。
children
在一个组件中,props是一个数组,所以你可以操纵它,你可以使用
index
以获得
child
元素,然后调用
focus()
由中的ref
使用效果
:
function App(props) {
const firstChildRef = useRef(null);
useEffect(() => {
if(firstChildRef.current) {
firstChildRef.current.focus()
}
}, [firstChildRef])
return (
<div className="App">
{props.children.map((child, index) => {
if(index === 0) {
return {...child, ref: firstChildRef};
}
return child;
})}
</div>
);
}