Creé un div que contiene un componente de entrada y configuré los eventos de puntero en ninguno. Escribí el código de tal manera que cuando el usuario hace clic en cualquier parte del div, la entrada obtiene el foco mediante el uso de referencias. Ahora el problema es que cuando hago doble clic en el texto escrito, en lugar de seleccionar el texto, se activa el evento de enfoque y el cursor aparece al final del texto en lugar de seleccionarlo. ¿Cómo puedo volver al comportamiento predeterminado?
<div className="flex relative" onClick={() => inputRef.current.focus()}> <input className="pointer-events-none" type='text' ref={inputRef} /> </div>Puede verificar si el elemento actual en el que se hizo clic es su entrada o no. Si es así, puede ignorar la lógica de enfoque
<div className="flex relative" onClick={(e) => { //if your current clicked element is not the input, it will execute `focus` if(e.target !== inputRef.current) { inputRef.current.focus() } }}> <input className="pointer-events-none" type='text' ref={inputRef} /> </div>