更改反应输入后保留e.target

时间:2020-07-16 12:24:33

标签: reactjs

我有一个输入字段,需要对其进行格式化,并在聚焦时突出显示其文本。 但是当我更新状态时,事件不会触发。我知道为什么,但是更改后如何突出显示输入的文本?

输入

<input type="text" value={amount}  onFocus={(e: any) => convertFocusAmount(field, e.target.value, e)} onBlur={(e: any) => convertBlourAmount(field, e.target.value)} />

对焦功能

const convertFocusAmount = (value: string, event:any) => {
    setAmount(value.replace('.', ''));
    event.target.select();
}

我有很多想法,请帮忙

1 个答案:

答案 0 :(得分:0)

您正在将event.target.value传递给convertFocusAmount,而不仅仅是event

编辑:

这样做:

<input
    type="text"
    value={amount}
    onFocus={(e: any) => convertFocusAmount(e)}
    onBlur={(e: any) => convertBlurAmount(e)}
/>

重点关注的是您可以访问完整的event对象:

const convertFocusAmount = (event: any) => {
    setAmount(event.target.value.replace('.', ''));
    event.target.select();
}