Я учусь React и хотите сделать вход с двумя ограничениями:Маска ввода номера карты в React
- 16 номеров,
- поставить пробел после каждого четвёртого.
import React, { Component } from 'react';
export default class CardNumberInput extends Component {
constructor() {
super();
this.state = { value: '' };
}
handleChange(event) {
React.findDOMNode(this.refs.cardInput).mask("0000 0000 0000 0000");
this.setState({ value: event.target.value });
}
render() {
let value = this.state.value;
return (
<div>
<label htmlFor="cardInput">Card Number: </label>
<input ref="cardInput" id="cardInput" onChange={this.handleChange} type="number" value={value} />
</div>
);
}
}
Я не знаю, правильно ли я делаю это правильно (использование рефами), потому что console.log (React.findDOMNode (this.refs.cardInput)) возвращает нуль его
P.S. .mask от http://igorescobar.github.io/jQuery-Mask-Plugin/
FYI не все PAN - 16 цифр –
@AlexK. Все нормально. Этот ввод предназначен только для учебных целей. – Evgeny
Я не могу говорить, почему 'findDOMNode' возвращается обратно, но вы должны просто использовать' event.target' вместо этого ref. –