【发布时间】:2021-10-21 01:03:12
【问题描述】:
我收到了这个无限循环错误。我想根据count 的值改变isDisabled 的状态。如果我想保持状态,我应该如何解决这个问题?
const TheGame = () => {
const [count, setCount] = useState(0);
const [isDisabled, setIsDisabled] = useState(false);
const onHitHandler = async () => {
let card = await fetchCard();
if (card[0].value === 'ACE')
setCount((prevCount) => prevCount + 11);
else if (card[0].value === 'JACK' || card[0].value === 'QUEEN') || card[0].value === 'KING')
setCount((prevCount) => prevCount + 10);
else
setCount((prevCount) => prevCount + Number(card[0].value));
};
if(count > 21)
setIsDisabled(true); // error occures here.
return(something);
};
【问题讨论】:
-
count是如何设置的?欢迎来到 SO。当涉及到asking a good question 和这个question checklist 时,您可能会发现阅读网站help section 很有用。您为解决问题而编写的代码应包含minimal reproducible example,并包含在您的问题中。 -
在
count上使用useEffect挂钩。它只会在count更改时触发,而不会像您当前的示例那样创建无限循环。 -
我已经编辑了帖子,所以你可以看到我是如何更改
count的。
标签: javascript reactjs use-state