我正在使用selectionStart
和selectionEnd
来获取文本选择的起始点和结束点。
代码: https://codesandbox.io/s/busy-gareth-mr04o
然而,我无法确定它们可以在哪种类型的事件上调用。
如果我使用any
,代码可以正常工作,但我更想知道正确的事件类型。
我已经尝试了以下这些类型:
Element
React.SyntheticEvent<HTMLDivElement>
<HTMLDivElement>
但都没有成功。
export default function App() {
const [startText, setStartText] = useState<number | undefined>();
const [endText, setEndText] = useState<number | undefined>();
const handleOnSelect = (event: any) => { <--- I CANNOT FIND THE RIGHT EVENT TYPE
setStartText(event.target.selectionStart);
setEndText(event.target.selectionEnd);
};
return (
<Grid container direction="column" className="App">
You can type here below:
<TextField
value={"This is a example, select a word from this string"}
onSelect={(event) => handleOnSelect(event)}
/>
<br />
<Grid item>The selected word starts at character: {startText}</Grid>
<Grid item>The selected word ends at character: {endText}</Grid>
</Grid>
);
}
const target = event.target as HTMLInputElement
,因为 if 语句总是被跳过 (event.target instanceof HTMLInputElement
)。 - Magofoco