javascript - 反应操纵 NumberFormat 格式以有条件地工作
问题描述
我在从 React 的NumberFormat
.
我需要它变成format="(###) ###-####"
好像用户输入了 10 个数字,但是当用户广告第 11 个数字时,必须丢弃格式但仍然显示数字。
这是我迄今为止尝试过的:
import React, { Component } from "react";
import NumberFormat from "react-number-format";
import PhoneInputHandler from "./PhoneInputHandler/PhoneInputHandler";
class App extends Component {
state = {
userInput: ""
};
phoneNumberFormatHandler = values => {
console.log(values);
// this.state.userInput.length <= 10 ? this.format="(###) ###-####" : this.format=this.state.userInput.values
};
render() {
return (
<div className="App">
{/* <input type="number"
name="phoneNumberInput"
placeholder='Phone Number Here'
onChange={this.inputChangedHandler}
value={this.state.userInput}/>
format="(###) ###-####"
<p id='PhoneOutput'><strong>Value: </strong>+1{this.state.numAsString}</p>
*/}
<NumberFormat
format="(###) ###-####"
mask=""
name="phoneNumberInput"
placeholder="Phone Number Here"
onValueChange={this.inputChangedHandler}
value={this.state.userInput.value}
/>
<p>
<strong>Value: </strong>+1{this.state.userInput.value}
</p>
</div>
);
}
}
export default App;
解决方案
#
您可以在格式字符串的末尾添加另一个,并检查您userInput
的值是否length
小于 11,如果是这种情况,则只提供NumberFormat
一个道具。format
例子
class App extends Component {
state = {
userInput: ""
};
inputChangedHandler = values => {
this.setState({ userInput: values.value });
};
render() {
const { userInput } = this.state;
return (
<div className="App">
<NumberFormat
format={userInput.toString().length < 11 ? "(###) ###-#####" : undefined}
name="phoneNumberInput"
placeholder="Phone Number Here"
onValueChange={this.inputChangedHandler}
value={userInput}
/>
<p>
<strong>Value: </strong>+1{userInput}
</p>
</div>
);
}
}
推荐阅读
- sql - 在最大时间段的窗口上聚合(SUM 或 AVG)
- python - python时间序列合成数据使用ydata-synthetic包 - 时间序列GAN
- embedded - 为什么 FreeRTOS 需要在断点处停止一次才能运行良好?
- javascript - 合并两个具有相似键的 Javascript 对象
- rust - 如何修复`特质不能成为特质对象`?
- soap - Alamofire - swift 4 - 使用肥皂上传 - (在 swift 3 中工作) - 不推荐使用的变量
- database - Alteryx“更新选项所需的主键”中的雪花插入/更新错误
- r - 当类别超过 8 个时,R waffle 包无法按预期工作
- c - 如何在 Linux 中实现 runas?
- react-native - 华为 IAP - 反应原生 hms iap 中的产品列表为空