尝试了很多方法来解决这个问题,但糟糕的是没有一个工作。我尝试更新输入字符串的第一个字符到文本框中的大写,这工作正常,但光标在编辑第一个字符后移动到文本框的末尾。
这是我的片段。
const textOnChange = (e) => {
const value = capitalizeFirstString(e.target.value)
setTitle(value);
};
const capitalizeFirstString = (str) => {
return str && str.charAt(0).toUpperCase() + str.slice(1);
};
字符串
尝试添加引用并设法设置光标位置,但不幸的是,尝试的解决方案无法按预期工作。
我的目标是在编辑字符串后将第一个字符转换为大写。
任何帮助都很感激。
1条答案
按热度按时间4szc88ey1#
您可以通过保存当前
selectionStart
的状态,并在每次更新后使用setSelectionRange()输入法将其设置为useEffect
,来保持插入符号在更改前的位置:个字符