0

Basically I have input element like

<input
    autoFocus
    value={newPrice}
    onChange={onPriceChange}
    type='number'
    onKeyDown={handleKeyPress}
    onBlur={onFocusChange}
    ref={inputRef}
/>

and I want to setPrice by entering number after onBlur or pressing enter. On blur function work fine but as soon I press enter price set to NaN

//My OnBlur handler
function onFocusChange() {
    const price = Number(inputRef.current?.value)
    setNewPrice(price)
    changePrice(id, price)
    setEdit(false)
  }

// Keydow handler
function handleKeyPress(e: KeyboardEvent<HTMLInputElement>) {
    if (e.key === 'Enter') {
        @ts-ignore
        setNewPrice(Number(e.target.value))
        setEdit(false)
    }
}

even if i use ref or event to access value during pressing enter it log perfectly fine value but as soon as state update i change to NaN. I also tried form which is take action as soon as i press enter. I handle onSumbit but problem is same NaN

need help what am i doing wrong

tried form and keydown both getting NaN. Update newPrice after pressing enter.

0 Answers0