Ich versuche, eine Textarea zu implementieren, die in React automatisch nahe Parens einfügt, aber wenn ich die Value-Eigenschaft des Textarea ändern, springt der Cursor an das Ende des zu bearbeitenden Textes.Wie kann man die Cursorposition bei textarea text change beibehalten?
Hier ist meine onChange Funktion:
//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}})
}
Diese erfolgreich die paren einfügt, aber wie kann ich die Cursor-Position bewahren?
'selectionStart' und' selectionEnd' ist auf jeden Fall Weg zu gehen , aber Sie müssen sicher sein, dass es keine benutzerdefinierte Auswahl im Textfeld gibt. – borisano
@borisano yup, du hast recht, ich denke nur daran. Wenn nach der Operation nichts ausgewählt werden soll, setzen Sie selectionStart = selectionEnd. Wenn Sie etwas auswählen möchten, das von dem Paren umgeben ist, ändern Sie es entsprechend. Und auch, nicht sicher, was passiert, wenn selectionStart> selectionEnd ... – Surely