首页 > 解决方案 > 获取 useState 立即更新

问题描述

我正在尝试根据用户单击的位置更改状态挂钩中的值。我的问题是,每次我调用一个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>

标签: javascriptreactjsreact-hooks

解决方案


推荐阅读