簡體   English   中英

React 鈎子無法推送到當前值全為 0 的數組,即 [0,0,0]

[英]React hooks cannot push to array who's current value is all 0 i.e. [0,0,0]

我正在使用鈎子在特定上下文中將新值推送到數組。 該值始終是一個數字,除非當前數組值全為零,否則我的代碼每次都有效。 請參閱下面的代碼,在 useEffect...我試圖在特定條件下將新值“0”推送到 homeInningScores 和 awayInningScores。 對於 homeInningScores 和 awayInningScores 都等於 [0,0,0] 的特定實例,這始終有效,在這種情況下它不會推送任何內容。

 const initialState = { homeInningScores: [], awayInningScores: [], } const [homeInningScores, setHomeInningScores] = useState( initialState.homeInningScores ) const [awayInningScores, setAwayInningScores] = useState( initialState.awayInningScores ) useEffect(() => { const isLeader = homeScore > awayScore || awayScore > homeScore if (currentInning > innings && homeScore &&,isLeader) { setInnings(innings + 1) //This part correctly pushes to the array UNLESS homeInningScores or awayInningScores is [0,0.0] setHomeInningScores(homeInningScores => [..,homeInningScores. 0]) setAwayInningScores(awayInningScores => [..,awayInningScores, 0]) } })

我相信問題來自這里:

if (currentInning > innings && homeScore && !isLeader) {

如果 homeScore = 0 則在 javascript 中也被評估為“假”。 您應該檢查 homeScore == null 或 undefined 或類似的東西。 一個數字可以作為 0 或 1 計算為 boolean。

暫無
暫無

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

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