reactjs 为什么useState不递增

beq87vna  于 2023-04-11  发布在  React
关注(0)|答案(2)|浏览(119)

我尝试实现useState来存储一个递增值。当我尝试递增值时,它不会更新它。我尝试手动将值设置为特定的数字,这确实有效。有什么问题吗?

const [cardsIndex, setCardsIndex] = useState(0);

       <Card style={[styles.card, styles.card1]} key={index}
          onSwipedRight={(event) => { setCardsIndex(cardsIndex+1);}}
          onSwipedLeft={(event) => { setCardsIndex(cardsIndex+1);}}
       >
zour9fqk

zour9fqk1#

每当你想根据先前的状态值更新状态时,你必须使用setState中的一个函数。

setCardsIndex((prevValue) => prevValue + 1)

文档:https://reactjs.org/docs/hooks-reference.html#functional-updates

oiopk7p5

oiopk7p52#

只需更改:

onSwipedRight={(event) => { setCardsIndex(cardsIndex+1);}}
onSwipedLeft={(event) => { setCardsIndex(cardsIndex+1);}}

收件人:

onSwipedRight={(event) => {() => { setCardsIndex(cardsIndex =>cardsIndex+1);}}
onSwipedLeft={(event) => { () => { setCardsIndex(cardsIndex =>cardsIndex+1);}}}

相关问题