【发布时间】:2018-11-07 11:22:27
【问题描述】:
在 React 中,通过类,我可以在组件加载时将焦点设置为输入,如下所示:
class Foo extends React.Component {
txt1 = null;
componentDidMount() {
this.txt1.focus();
}
render() {
return (
<input type="text"
ref={e => this.txt1 = e}/>
);
}
}
我正在尝试使用新的hooks proposal 重写此组件。
我想我应该使用useEffect 而不是componentDidMount,但是我该如何重写焦点逻辑呢?
【问题讨论】:
-
只是想提一下,也可以在不需要 JS 的情况下在输入本身上设置自动对焦属性,例如:
<input type="text" autofocus="true" />。我知道这不是您问题的直接答案,这就是为什么我把它放在评论中并且我不想使给定的答案无效,我会这样做。我只是认为在很多情况下,直接设置属性并完成它就足够了。
标签: javascript reactjs