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

В моем текущем приложении React мне нужен вход, который проверяет и изменяет результат по следующим правилам:

Input: 10 -> Output: 1000
Input: 10.5 -> Output: 1050
Input: 10.55 -> Output: 1055

Это то, что у меня есть до сих пор:

<Form.Control
    as="input"
    type="number"
    min="0.00"
    step=".01"
    onChange={this.handleChange.bind(this)}
/>
handleChange(event: React.ChangeEvent<HTMLInputElement>) {
    if(event.target.value.includes('.')) {
        let values = event.target.value.split('.')
        if(values[1].length <= 1) {
            let decimal = values[1] = values[1] + '0';
            let output = values[0] + decimal;
        }
    }
    this.submitPayment(output) // error: output not defined
}

Сейчас моя проблема в том, что мой код работает только при вводе десятичной дроби (точка / запятая).

Также я думаю, что есть гораздо более "элегантное" решение для этого, которое было бы здорово знаю!

1 Ответ

2 голосов
/ 09 марта 2020

Я не понимаю, почему вы просто не делаете этого:

handleChange(event: React.ChangeEvent<HTMLInputElement>) {
    const output = parseFloat(event.target.value) * 100
    this.submitPayment(output);
}
...