亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

React Native同時修改相同的狀態

React Native同時修改相同的狀態

慕森卡 2023-11-11 21:49:36
我剛剛開始學習一些本機反應,我正在嘗試制作一個簡單的 cookie 點擊器應用程序。當我點擊我的 cookie 時,cookiecount 會增加 1,但我希望 cookie 計數每秒也增加 1。當我多次點擊 cookie 并且 cookiecount 翻轉并跳轉到不同的數字并再次返回時,我認為這與我同時更新 cookiecount 狀態 2 次有關?export default function App(props) {  {/* Make the state that holds the amount of cookies */}  const [cookieCount, modifyCookieCount] = useState(0)  const [costCount, modifyCostCount] = useState(10)  const [perClickBoost, setBoost] = useState(1)  const interval = setInterval(() => modifyCookieCount(cookieCount+1), 1000);function addPurchase(count){    modifyCookieCount(cookieCount-count)    modifyCostCount(costCount+10);    setBoost(perClickBoost+1)  }    return (    <View style={styles.container}>      <Text>{cookieCount}</Text>      {/* TouchableOpacity is needed to make use of Onpress prop */}       <TouchableOpacity onPress = {addCookie}>        <Image style={styles.image} source={require('./images/cookie.png')}/>      </TouchableOpacity>        <Purchasables addPurchase={addPurchase} count={cookieCount} title='Koekjesslaaf' cost={costCount}/>      <StatusBar style="auto" />    </View>  );  function addCookie(){    {/* Add a cookie */}    modifyCookieCount(cookieCount+perClickBoost)  }  }該問題是由這兩個更新引起的:  const interval = setInterval(() => modifyCookieCount(cookieCount+1), 1000);和  function addCookie(){    {/* Add a cookie */}    modifyCookieCount(cookieCount+perClickBoost)  }我希望有人可以幫助我解決這個問題,如果我的代碼沒有意義,我很抱歉,我剛剛開始學習。
查看完整描述

1 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

我的建議是你可以將 cookie 分成 2 個變量。

const [cookieAutoCount, modifyCookieAutoCount] = useState(0)
const [cookieTouchCount, modifyCookieTouchCount] = useState(0)

您需要做的是檢查是否cookieAutoCount + cookieTouchCount > limit重置兩個值,每次自動創建和觸摸創建時檢查兩種情況


查看完整回答
反對 回復 2023-11-11
  • 1 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號