我正在使用一个定制库,其中我需要手动设置光标 Select .以下是我的输入代码:

import React, { useState } from 'react';
import { useDrag } from 'react-dnd'
import { Validation } from "../types";
...
  <input
    ref={forwardRef}
    id={id}
    type={type}
    placeholder={placeholder}
    value={value}
    onChange={onChange}
    onKeyDown={onKeyDown}
    onBlur={onBlur}
    name={name}
    disabled={disabled}
    className={`fb-form-control goggo ${validation?.type}`}
    checked={!!checked}
    draggable={true}
    onDragStart={(event) => event.preventDefault()}
    onMouseEnter={()=>console.error("onMouseEnter", "onMouseEnter")}
    onMouseLeave={() => console.error("onMouseLeave", "onMouseLeave")}
    onDoubleClick={() => console.error("I have been double clicked!")}
  />

我需要将() => console.error("I have been double clicked!")替换为对 Select 输入文本的函数的调用.代码:onDoubleClick={() => console.error("this", document.getElementById(String(id))?.select())}会导致"TS2551: Property 'select' does not exist on type 'HTMLElement'. Did you mean 'onselect'?"

推荐答案

使用事件目标而不是getElementById.

onDoubleClick={(event) => (event.target as HTMLInputElement).select()}

Reactjs相关问答推荐

单击按钮时在子元素中不显示任何内容-react

在Reaction中测试条件组件

Reaction-路由v6动态路径RegExp

我想删除NextJs中的X轴标签APEXCHARTS

捕获表单数据时的Reactjs问题

React 在第一次渲染时为 null

React router v5 仅在生产中不适用于嵌套路由

使用D3.js绘制和展示弦图的右下方象限

React Native 背景动画反转

cypress `cy.now()` Type 'Promise' 没有调用签名

将 clerk 与 supabase 集成的最佳实践

map 未显示在react 传单中

如何禁用来自 React Native API 的某些特定项目的可touch 不透明度

调用 Jest 和服务方法的问题

使用 yarn 编译 protobuf js 时出现错误pbjs: command not found

加密 Django Rest Framework API 响应 + 解密响应应用程序中的响应

运行开发服务器时如何为 Vite 指定运行时目录

ClearInterval 在 React 中的 useRef 没有按预期工作

点击提交后自动添加#

由于另一个子组件,如何在react 中渲染另一个子组件