react實現手機驗證碼的方法:1、下載antd button和input元件;2、通過「<Input className={`apiMobileInput`} disabled value={this.props.phoneNumber} />」獲取客戶的手機號;3、通過「await this.props.sendCode({...})」實現獲取驗證碼即可。
本教學操作環境:Windows10系統、react18.0.0版、Dell G3電腦。
react怎麼實現手機驗證碼?
React結合 antd 實現手機或者郵箱獲取驗證碼60秒倒計時
我這邊是使用了antd button 和input 元件,若大家需要 提前下載
import { Input, Button } from ‘antd’
<div>
<p className={`littleTitle`}>手機號</p>
<Input className={`apiMobileInput`} disabled value={this.props.phoneNumber} />//這個value是客戶手機號,是我在客戶資訊裡面獲取到的
<p className={`littleTitle`}>獲取驗證碼</p>
<Input
className={`apiInput`}
addonAfter={
<button
//判斷如果點選了獲取驗證碼,就讓button按鈕上顯示 *秒後重傳送 並且button設定為disabled
disabled={this.props.liked ? false : true}
onClick={() => this.getCode(theme)}//點選此按鈕獲取驗證碼
className={`verificationCode`}>{this.state.liked ? 獲取驗證碼:(60)秒後重發}
</button>} />
</div>
//獲取驗證碼
getCode = async theme => {
//我這邊是獲取了客戶資訊,從中取到客戶的手機號和郵箱,若客戶繫結了手機號,就通過手機號驗證,若沒有繫結手機號,就通過郵箱驗證碼驗證
const { data } = this.props.information.data
//這個是獲取當前語言
let lang = getLocalStorage('defaultLanguage')
//得到語言Id
let langId = lang === 'Chinese' ? 'zh' : lang === 'English' ? 'en' : lang === 'Japanese' ? 'ja' : ''
//把手機號和語言id傳入後臺,獲取驗證碼
const status = await this.props.sendCode({ mobileOrEmail: data.mobile ? data.mobile : data.email, langId: langId })
//呼叫下面檢視驗證碼傳送的狀態方法
this.getSendCodeStatus(status,theme)
}
//倒計時
countDown() {
const { count } = this.state
if (count === 1) {//當為0的時候,liked設定為true,button按鈕顯示內容為 獲取驗證碼
this.setState({
count: 60,
liked: true,
})
} else {
this.setState({
count: count - 1,
liked: false,
})
setTimeout(() => this.countDown(), 1000)//每一秒呼叫一次
}
}
//傳送驗證碼是否成功
getSendCodeStatus = async (status,theme) => {
if (status.success === false) {//若傳送失敗,提示客戶資訊傳送失敗,不進行倒計時
sendCodeError(theme)
} else {
sendCodeSuccess(theme)//若傳送成功,liked設為false,意味著傳送驗證碼的按鈕將被會禁用
this.setState({
authCode: '',
email: '',
liked: false,
})
this.countDown()//呼叫倒計時
}
}
登入後複製
思路:
客戶點選獲取驗證碼的時候,需要先有客戶的手機號,把手機號傳入後臺,獲取驗證碼,我這邊做的時候,是判斷了是否傳送驗證碼成功,成功以後才執行60秒倒計時,到倒計時為0的時候,把liked設定為true,button的內容恢復為 獲取驗證碼
//效果圖
推薦學習:《》
以上就是react怎麼實現手機驗證碼的詳細內容,更多請關注TW511.COM其它相關文章!