Sto provando ad implementare una textarea che inserisce automaticamente parenti ravvicinati in React, ma ogni volta che modifico la proprietà value del textarea, il cursore salta alla fine del testo che si sta modificando.Come mantenere la posizione del cursore sulla modifica del testo dell'area di testo?
Ecco la mia funzione onChange:
//on change
function(event) {
var newText = event.target.value
var cursorPosition = getCursorPosition(event.target)
if(lastCharacterWasParen(newText, cursorPosition)){
newText = newText.slice(0, cursorPosition) + ')' + newText.slice(cursorPosition)
}
this.setProps({text: newText}})
}
Questo inserisce con successo il paren, ma come faccio a preservare la posizione del cursore?
'' selectionStart' e selectionEnd' sono sicuramente strada da percorrere , ma devi essere sicuro che non ci siano selezioni personalizzate in textarea. – borisano
@borisano sì, hai ragione, ci penso. Se non è necessario selezionare nulla dopo l'operazione, impostare selectionStart = selectionEnd. Se si desidera selezionare qualcosa circondato da Paren, modificare di conseguenza. E inoltre, non è sicuro che cosa accadrà se selectionStart> selectionEnd ... – Surely