[英]Validate phone number on React.js
我正在嘗試驗證電話字段,以使用以下代碼獲取所有字母和點。
validatePhone = () => {
const sanitizedPhone = this.state.phone.replace(/\D/g, '');
if (sanitizedPhone.length >= 10 && sanitizedPhone.length <= 11) {
this.setState({ phone: sanitizedPhone });
return true;
}
toast.error('Invalid phoneNumber.', {
position: "top-center",
autoClose: false,
closeOnClick: true,
});
return false;
}
當我嘗試使用像11.97.4.4.51234
這樣的輸入點的console.log(sanitizedPhone)
,我得到11974451234
但在此之后,在console.log(this.state.phone)
我得到舊號碼11.97.4.4.51234
從反應文檔:
setState() 並不總是立即更新組件。 它可能會批量更新或推遲更新。 這使得在調用 setState() 之后立即讀取 this.state 成為一個潛在的陷阱。
這就是為什么您在使用 setState 后沒有立即看到更改的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.