【发布时间】:2018-12-04 19:31:45
【问题描述】:
input 元素进入 DOM 时如何设置焦点?
场景
单击按钮时,会显示输入元素。如何设置焦点到这个元素?
代码片段
class Component extends React.Component{
constructor(props) {
super(props);
this.state = {
showInput: false
}
}
render() {
return (
<div>
<div onClick={() => {
this.setState({showInput: true});
ReactDOM.findDOMNode(this.refs.myInput).focus() // <- NOT WORKING
}}>
Show Input
</div>
{
(this.state.showInput) ? (
<input
type="text"
ref="myInput"
/>
) : ""
}
</div>
);
}
}
在状态更改后调用ReactDOM.findDOMNode(this.refs.myInput).focus() 不起作用。同样在状态更改时仅更改 style 或 type 属性也不起作用。
【问题讨论】:
标签: reactjs