簡體   English   中英

在 function 內反應原生變量不更新

[英]React native variable not update inside function

  const [businessHour, setBusinessHour] = useState("");
 const getHour = () => {
   console.log(businessHour);
}

setBusinessHour('1234');
getHour();

結果顯示“”而不是“1234”,有什么方法可以更新變量嗎? 謝謝

請更新您的整個組件代碼。 結果會先顯示空字符串"" ,然后當 state 改變時,會打印"1234" 所以會有多個日志記錄,而不僅僅是一個。

我之前也遇到過同樣的問題。 我的解決方法是創建一個臨時變量來使用,因為 state 尚未更新。

const [businessHour, setBusinessHour] = useState("");
 const getHour = (businessHour) => {
   console.log(businessHour);
}

let newBusinessHour = '1234'
setBusinessHour(newBusinessHour);
getHour(newBusinessHour);

更好的方法是使用 useEffect 回調:

const [businessHour, setBusinessHour] = useState("");

useEffect(() => {
getHour()
},[getHour])

 const getHour = useCallback(() => {
   console.log(businessHour);
},[businessHour])

setBusinessHour('1234');

所以這里基本上useEffect將在getHour更改時調用,這取決於businessHour

希望能幫助到你。

如果要更新一些視圖,然后更新 state,則可以更新 state。 在上述情況下,您不需要更新 state。

businessHour = '1234';
getHour();

然后你會得到你想要的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM