如何使用useState使setState在其他函数之前更新

时间:2019-12-11 21:28:17

标签: react-native

我正在构建一个表格,以在用户输入后确认电话号码的个人识别码。

我从

开始编码

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不会更新立即编码。

1 个答案:

答案 0 :(得分:1)

我解决了这个问题,我使用了useEffect,因此每次code的长度为4时,它将调用该函数。

useEffect( () =>{
    if(code.length == 4){
      confirmUserPin()
    }
  }, [code] )