react-text-mask 如何在函数中传递模式 react 使用 material-ui 形式
react-text-mask how to pass pattern in function react using material-ui form
这是我的class
class PaypalAddPaymentForm extends Component {
constructor (props) {
super(props);
this.state = {
form: {
cardNo: '',
}
}
}
onChange = (e, v) => {
let field = e.target.name;
let form = this.state.form;
form[field] = e.target.value;
this.setState({ form });
}
render () {
return (
<PaypalForm className="margin-top margin-horizontal">
<FormGroup>
<FormLabel>Card</FormLabel>
<Input
name="cardNo"
inputComponent={CreditCardMask}
onChange={this.onChange}
inputProps={{ 'aria-label': 'card no' }}
disableUnderline
/>
</FormGroup>
</PaypalForm>
);
}
}
我正在使用一个名为 react-text-mask
的库,根据它的文档,它基本上像这样屏蔽了它
function CreditCardMask (props) {
return (
<MaskedInput
{...props}
mask={[ /\d/, /\d/, /\d/, /\d/ ]}
placeholderChar={'\u2000'}
showMask={false}
/>
);
}
现在我想做的是为 Masking 创建一个在其函数参数中接受模式的函数,这样我就可以创建一个通用的屏蔽函数,该函数接受模式并根据屏蔽参数屏蔽输入字段它得到;
类似这样的东西 function CreditCardMask (props, pattern)
其中 pattern 是正则表达式模式我希望输入像这样被屏蔽。
我使用的material ui版本是"material-ui": "^1.0.0-beta.12",
我建议你可以使用高阶函数来包装你的组件:
function CreditCardMaskWrapper(pattern) {
return (props) => {
return (
<MaskedInput
{...props}
mask={pattern}
placeholderChar={'\u2000'}
showMask={false}
/>
)
};
}
然后你可以:
const pattern = [ /\d/, /\d/, /\d/, /\d/ ];
<Input
name="cardNo"
inputComponent={CreditCardMaskWrapper(pattern)}
onChange={this.onChange}
inputProps={{ 'aria-label': 'card no' }}
disableUnderline
/>
祝你好运!
这是我的class
class PaypalAddPaymentForm extends Component {
constructor (props) {
super(props);
this.state = {
form: {
cardNo: '',
}
}
}
onChange = (e, v) => {
let field = e.target.name;
let form = this.state.form;
form[field] = e.target.value;
this.setState({ form });
}
render () {
return (
<PaypalForm className="margin-top margin-horizontal">
<FormGroup>
<FormLabel>Card</FormLabel>
<Input
name="cardNo"
inputComponent={CreditCardMask}
onChange={this.onChange}
inputProps={{ 'aria-label': 'card no' }}
disableUnderline
/>
</FormGroup>
</PaypalForm>
);
}
}
我正在使用一个名为 react-text-mask
的库,根据它的文档,它基本上像这样屏蔽了它
function CreditCardMask (props) {
return (
<MaskedInput
{...props}
mask={[ /\d/, /\d/, /\d/, /\d/ ]}
placeholderChar={'\u2000'}
showMask={false}
/>
);
}
现在我想做的是为 Masking 创建一个在其函数参数中接受模式的函数,这样我就可以创建一个通用的屏蔽函数,该函数接受模式并根据屏蔽参数屏蔽输入字段它得到;
类似这样的东西 function CreditCardMask (props, pattern)
其中 pattern 是正则表达式模式我希望输入像这样被屏蔽。
我使用的material ui版本是"material-ui": "^1.0.0-beta.12",
我建议你可以使用高阶函数来包装你的组件:
function CreditCardMaskWrapper(pattern) {
return (props) => {
return (
<MaskedInput
{...props}
mask={pattern}
placeholderChar={'\u2000'}
showMask={false}
/>
)
};
}
然后你可以:
const pattern = [ /\d/, /\d/, /\d/, /\d/ ];
<Input
name="cardNo"
inputComponent={CreditCardMaskWrapper(pattern)}
onChange={this.onChange}
inputProps={{ 'aria-label': 'card no' }}
disableUnderline
/>
祝你好运!