Как я могу решить проблему с форматом ввода номера? - PullRequest
0 голосов
/ 22 марта 2020

человек. Мне нужно исправить ошибку в поле ввода. Я использовал Regex для форматирования валюты так: ( R $ 1.200.200,99 ). Я хотел бы знать, что не так с моим кодом ?. Пожалуйста!

Перейдите по ссылке кода

https://6fhfv.csb.app/

   <InputNumber
    name="topText"
    style={{
      width: 400,
      marginRight: "1rem"
    }}
    formatter={value => {
      let temp  = value+'';
      temp = temp.replace(/([0-9]{2})$/g, ",$1");
      if(temp.length > 6 ) {
        temp = temp.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");

        return temp;
      } 
    }}
    parser={value => value.replace(/[\D]+/g,'')}
    onChange={handleChange}
  />

1 Ответ

0 голосов
/ 22 марта 2020

Вам не хватает обработчика onChange для InputNumber.

Редактировать

В вашем примере вы предоставляете явное значение для своего ввода, и если вы это делаете, у вас должен быть какой-то механизм для измените его, поэтому вы должны добавить обработчик onChange.

Другой способ сделать это - иметь неконтролируемый ввод, при котором вы не отслеживаете текущее состояние входного значения, но вы можете получить к нему доступ через ref, чтобы получить значение, когда вам это нужно.

Оба подхода действительны, и вы должны выбрать тот, который соответствует вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...