要实现这个功能,你可以在点击按钮时使用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就会自动获得焦点了

reactjs 点击按钮之后下一个card的textarea自动获得 focus

原文地址: http://www.cveoy.top/t/topic/icLC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录