【发布时间】:2022-06-17 14:59:08
【问题描述】:
我正在尝试在更改国家/地区时更新电话号码输入格式以匹配国家/地区格式。当我最初输入数字时,它会根据当前选择的国家/地区进行格式化,但是当我更改为不同的国家/地区时,格式会保持为所选的原始国家/地区的格式,并且不会调整为新选择的格式。
我尝试触发 useState 更改,但它没有更新布尔格式。
下面是我的代码的 IntlTelInput
format={true}
fieldName="phone"
inputClassName="checkout__input"
onPhoneNumberChange={onChange}
onSelectFlag={handleSelectFlag}
defaultValue = {defaultPhone}
/>
以及 onChange 和 handleSelectFlag 函数
if(isValid) {
validatedParentNumber = fullNumber.replace(/\s|-/g, '')
setValue("phone", validatedParentNumber);
setIntlError(false);
clearErrors('phone');
let dial = selectedCountryData.dialCode;
userCountryCode = `+${dial}`;
} else {
setIntlError(true);
setValue("phone", null)
}
};
const handleSelectFlag: IntlTelInputProps['onSelectFlag'] = (currentNumber, seletedCountryData, fullNumber, isValid) => {
if(isValid) {
let updatedIntlNum = fullNumber.replace(/\s|-/g, '')
let dial = seletedCountryData.dialCode;
userCountryCode = `+${dial}`;
setValue("phone", updatedIntlNum)
setIntlError(false);
clearErrors('phone');
} else {
setIntlError(true);
setValue("phone", null)
}
};
【问题讨论】:
标签: reactjs typescript intl-tel-input