我正在构建一个表格,以在用户输入后确认电话号码的个人识别码。
我从
开始编码 const [code, setCode] = useState("");
并且我使用平滑的密码输入
<SmoothPinCodeInput
cellStyle={{
width: 50,
borderBottomWidth: 2,
borderColor: "gray"
}}
cellStyleFocused={{
borderColor: "black"
}}
animated
onFulfill={() =>
{
setIsCodeCompleted(true)
confirmUserPin()
}
}
value={code}
onTextChange={code => setCode(code)}
/>
问题是setCode(code)
在confirmUsePin()
调用的onFilfill()
之后起作用,所以我的密码是4个数字,但只发送了3个数字,这是因为setCode不会更新立即编码。
答案 0 :(得分:1)
我解决了这个问题,我使用了useEffect
,因此每次code
的长度为4时,它将调用该函数。
useEffect( () =>{
if(code.length == 4){
confirmUserPin()
}
}, [code] )