我有以下几点:

class MyTextArea extends React.Component {

  handleClick = () => {
    this.focus();
  }
    
  focus = () => this.ref.focus;

  handleRef = (component) => {
    this.ref = component;
  };

  render() {
    return (
      <div className="magicHelper" onClick={this.handleClick}>
        <textarea></textarea>
      </div>
    );
  }
}

我的CSS:

.magicHelper {
  width: 100%;
  height: 100%;
}
textarea {
  line-height: 32px;
}

我需要这个,因为我需要文本区域的占位符在页面中水平和垂直居中.鉴于文本区域不能垂直居中,我需要保持文本区域的高度较短.因此,当用户在textarea之外单击时,我需要这样做,因为他们认为他们在单击textarea,textarea会自动聚焦.

这会导致ESLint错误:

"Visible, non-interactive elements with click handlers must have at least one keyboard listener"

如何更新以上内容以通过eslint?

推荐答案

https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/click-events-have-key-events.md

这条规则似乎是为了执行可访问性标准.

基于此,更改代码以执行以下操作

<div className="magicHelper" onClick={this.handleClick} onKeyDown={this.handleClick}>

您还可以在eslint中禁用该规则,我想这取决于偏好.

Reactjs相关问答推荐

InfiniteScroll持续获取数据,直到超过最大更新深度

如何防止使用useCallback和memo重新渲染

条件索引路由

在Redux工具包查询中,是否可以将标记应用到API切片内的所有端点?

使用Overpass API Endpoint计算 map 上的面积

禁止直接访问Next.js中的页面,同时允许从应用程序内部访问

我如何在不被 destruct 的情况下将导航栏固定在顶部?

Javascript - 正则表达式不适用于 MAC OS - 编码?

useEffect内部的RETURN语句在首次按钮点击事件中似乎无效的原因是什么?

BrowserRouter改变了URL但没有链接到页面

虽然通过了身份认证,但并没有导航到请求的页面

React js中不记名令牌中的空间问题

AWS 全栈应用程序部署教程构建失败

如何在同一路由路径上重新渲染组件(链接,V6)reactjs

错误:无效挂钩调用.钩子只能在函数组件的主体内部调用.使用 next/router 时

如何在 JSX 中使用 -webkit- 前缀?

如何根据react 中的 map 功能一次只打开一个弹出窗口?

React Router 6,一次处理多个搜索参数

Map 函数只返回 Array 中的图像

添加禁用的默认选项以 Select