reactjs 点击按钮之后下一个card的textarea自动获得 focus
要实现这个功能,你可以在点击按钮时使用React的Ref来获取下一个card的textarea元素,并调用focus()方法来设置焦点。
首先,在你的组件中创建一个Ref对象来引用下一个card的textarea元素。你可以在组件的构造函数中初始化这个Ref对象:
constructor(props) {
super(props);
this.nextCardTextareaRef = React.createRef();
}
然后,在点击按钮的事件处理函数中,通过this.nextCardTextareaRef.current来获取下一个card的textarea元素,并调用focus()方法来设置焦点:
handleButtonClick = () => {
// 获取下一个card的textarea元素
const nextCardTextarea = this.nextCardTextareaRef.current;
// 设置焦点
if (nextCardTextarea) {
nextCardTextarea.focus();
}
}
render() {
return (
<div>
<button onClick={this.handleButtonClick}>点击按钮</button>
<Card>
<textarea ref={this.nextCardTextareaRef} />
</Card>
</div>
);
}
在上述代码中,我们在Card组件的textarea元素上添加了一个ref属性,将this.nextCardTextareaRef赋值给它。这样,我们就可以通过this.nextCardTextareaRef.current来获取这个textarea元素。
当点击按钮时,handleButtonClick函数会被调用,它会获取this.nextCardTextareaRef.current的值,并调用focus()方法来设置焦点。
这样,点击按钮之后,下一个card的textarea就会自动获得焦点了
原文地址: http://www.cveoy.top/t/topic/icLC 著作权归作者所有。请勿转载和采集!