У меня есть следующий простой компонент:
function TestComp() {
const [selection, setselection] = React.useState({ start: 0, end: 0 });
return (
<View style={{ justifyContent: "center", flex: 1 }}>
<TextInput
selection={selection}
onSelectionChange={(event) => {
const {nativeEvent: { selection: { start, end } }} = event;
setselection({ start, end });
}}
multiline={true}
/>
</View>
);
}
Моя проблема заключается в том, что часто происходит задержка с обновлением значения от selection
до setselection
, что заставляет каретку перепрыгивать или вызвать ошибку: setSpan(1 ... 1) ends beyond length 0
(что, как я считаю, означает, что выделение установлено больше значения TextInput)
Как я должен использовать реквизит выделения? Моя цель - иметь возможность перемещать курсор, когда мне нужно.
Я использую expo, но с удаленной отладкой, чтобы не вызывать дополнительную задержку.
Пример прыжка: