Обработка данных внутри компонента React

Есть функция обработчик в компоненте React:

  const handleChange = () => {
    const values = getValues();
    setMainData(mainData => Object.assign(mainData,values));
    onSubmitParent(mainData);
    console.log(mainData);
  }

Так же есть кусок компонента:

<input ... onKeyPress={handleChange} />

Необходимо при вводе в инпут запускать функцию, передающую данные в след компонент (с этим всё нормально).
Но, значение инпута(которое передается) не берет новые данные (только данные с прошлого шага).
Пример: при последовательном вводе "3+4", будет выводить {},{3},{3+}, хотя надо {3},{3+},{3+4}
Решение через setTimeout работает, но может есть другие способы?

  const handleChange = () => {
    setTimeout(() => {
      const values = getValues();
      setMainData(mainData => Object.assign(mainData,values));
      onSubmitParent(mainData);
      console.log(mainData);
    }, 0);
  }

Ответы (0 шт):