【发布时间】:2020-02-28 10:29:39
【问题描述】:
下面是代码:
export class Editor extends Component {
constructor(props) {
super(props);
this.state = {
name: ""
}
}
handleChange = (event) => {
event.persist();
this.setState({ name: event.target.value });
}
render() {
...
<input name="name" autoFocus={true} value={this.state.name} onChange={this.handleChange} />
<button onClick={this.handleAdd}>
Add
</button>
}
}
所以第一次渲染组件时,输入元素确实有焦点,因为我使用了autoFocus={true}。但是在我点击按钮后,焦点并没有回到输入,而是停留在按钮上。我的问题是:
为什么输入没有重新获得焦点?由于onClick handler更新了组件的状态,使得组件重新渲染,当组件重新渲染时,是不是autoFocus={true}也会重新申请?
【问题讨论】:
标签: javascript reactjs