反应console.log中的增量和减量



也许我不太理解React。。所以我试图增加和减少数字,但当我控制台.log时,我在控制台中看到一个数字减少或增加。我想这是因为数字以0开头。有没有办法让我按下的键和控制台上的键相匹配?

import { useState } from "react";
export default function Numbers() {
const [number, setNumbers] = useState(0);
const onClickIncrease = () => {
console.log(number);
// I have tried the following:
// setNumbers(number + 1);
setNumbers((prev) => prev + 1);
};
const onClickDecrease = () => {
console.log(number);
setNumbers((prev) => prev - 1);
};
return (
<>
<div onClick={onClickDecrease}>-</div>
<div>{number}</div>
<div onClick={onClickIncrease}>+</div>
</>
);
}
import { useState } from "react";
export default function Numbers() {
const [number, setNumbers] = useState(0);  
console.log(number);
return (
<>
<div onClick={()=> setNumbers(number - 1)}>-</div>
<div>{number}</div>
<div onClick={()=> setNumbers(number + 1)}>+</div>
</>

);}

EDIT:它与异步的反应状态有关,可以查看上面的链接。

----忽略下面----

const onClickIncrease = () => {
console.log(number); // output will be 0
setNumbers((prev) => prev + 1);
console.log(number); // output will be 1
};

是的,这个数字以0开头,因为useState中传递的参数是0。

const [number, setNumbers] = useState(0);

最新更新