javascript - 获取 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>
解决方案
推荐阅读
- c# - 当我有许多具有相同属性的类但它们在加载和刷新等方法上有所不同时,正确的方法是什么?
- swift - Swift,Xcode - 哪个视图控制器用于动态内容的水平和垂直滑动
- javascript - 仅当烧瓶中的变量发生变化时才更新网站
- node.js - Express URIError:无法解码参数
- c# - 没有年份的 C# 格式 DateTime
- xampp - 如何捕获我的路由器发出的 url 请求?
- botframework - IBM 对话仍然适用于 botframework?
- machine-learning - 生成器和鉴别器损失曲线是精确的镜像
- hadoop - HAR 与序列文件
- c# - 如何返回给定索引的字体系列的字符