ReactJS, изменить строку на число внутри компонента

#reactjs

#reactjs

Вопрос:

У меня есть этот компонент, который, по идее, должен возвращать значение в виде числа, он получает строку:

 // <InputNumber>
import React from 'react';
import NumberFormat, { NumberFormatProps } from 'react-number-format';

export type InputNumberProps = NumberFormatProps;

const InputNumber: React.FC<InputNumberProps> = ({ onChange, ...rest }) => {
  const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
    event.preventDefault();
    if (onChange) {
      onChange(event);
    }
  };

  return (
    <NumberFormat {...rest} onChange={handleChange} />
  );
};
 

С помощью этого кода я ничего не делаю с получаемым значением. В настоящее время у меня есть другой вызываемый компонент Main , который используется InputNumber таким образом:

 // <Main>
import React from 'react';
import Container from 'react-bootstrap/Container';

import InputNumber from '../components/InputNumber';

const Main: React.FC = () => {
  const onChange = (val: any) => Number(val.target.value);

  return (
    <Container>
      <InputNumber onChange={onChange} />
    </Container>
  );
};

export default Main;
 

Итак, с реквизитами onChange я фактически меняю string то, что получает от IntegerNumber , и оно возвращает a number , в чем и заключается вся идея.

Итак, мой вопрос в том, как я могу сделать это изменение значений из string в number, но не снаружи IntegerNumber через props onChange ? Я просто хочу использовать и преобразовывать туда строку, которая всегда получает и возвращает числа. InputNumber

Комментарии:

1. onChange(Number(event.target.value)) ?

2. Внутри handleChange ? Я не могу, потому что: Argument of type 'number' is not assignable to parameter of type 'ChangeEvent '

3. onChange = (val: any) => parseInt(val.target.value); пробовал это?

4. Количество parseInt работает, но я не хочу преобразовывать строку в целое число / число вне компонента IntegerNumber . Код, который работает, мне нужно выполнить преобразование внутри InputNumber