我正在尝试根据用户单击的位置来更改状态挂钩中的值。我的问题是,每次我调用onClick
方法时,状态都将使用先前的值进行更新。
我已经看到useState是异步的,我需要使用useEffect来获取正确的值,但是我不知道该怎么做。有帮助吗?
这是我的简化代码:
const [formData, setFormData] = useState({
content: "",
rating: ""
});
const { content, rating } = formData;
const onChangeAgree = async e => {
setFormData({ ...formData, rating: "agree"});
}
const onChangeDisagree = async e => {
setFormData({ ...formData, rating: "disagree"});
}
...
<div onClick={e => onChangeAgree(e)}>Agree</div>
<div onClick={e => onChangeDisagree(e)}>Disagree</div>