Предварительно заполненное поле ввода добавляет начальный ноль при получении нецифрового ввода в пустое поле - PullRequest
0 голосов
/ 09 апреля 2019

Я очень озадачен тем, как справиться с этой ситуацией.Я использую поля ввода реагировать.Они заполняются при рендере, но пользователь может изменить значение.Однако эта конкретная проблема возникает, когда поле не будет пустым, а вместо этого, если в поле ввода нет чисел и вы вводите значение, которое не является числом, оно добавляет начальный ноль.Этот ноль не может быть удален, если вы не выделите его и не введете число.В противном случае этот ноль остается в начале любого значения, которое вы вводите.

например:

InputField: 100000

^ выделение сверху и backspace приводит к:

InputField: 0

теперь все значения добавленыбудет иметь этот ноль

InputField: 0150000

тот же результат, если вы попытаетесь выделить и ввести (-) или не числовое значение.

Я все равно не могу придуматьчтобы решить это прямо сейчас.Это просто реагирующий элемент ввода, который делает это?

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

<Input
    name="firstItem"
    onChange={this.handleChange('firstItem')}
    value={firstItm}
    onFocus={this.handleFocus}
    inputComponent={NumberFormatCustom}  <<< Formatter
/>

NumberFormatCustom Класс:

import React from 'react'
import NumberFormat from 'react-number-format'

const NumberFormatCustom = (props: any) => {
  const { inputRef, onChange, ...other } = props

  return (
    <NumberFormat
      {...other}
      getInputRef={inputRef}
      onChange={onChange}
      thousandSeparator
      isNumericString
    />
  )
}

export default NumberFormatCustom
...