javascript - React 中同时设置状态和调用补丁
问题描述
这不是重复的
我有一个反应组件,我想在单击复选框时更新数据库。我有一个句柄函数来设置状态,还有一个调用函数来获取状态并将其推送到服务器。问题是,我找不到按顺序调用函数的方法。服务器调用在我们更新状态之前运行。这是一个愚蠢的例子。
const [data, setData] = useState([]);
const handleChange = (stuff) => {
//changing stuff to format
setData([stuff])
saveData()
}
const saveData = () => {
callServer(data)
}
return <ComponentWithCheckBoxes onChange={() => handleChange()}/>
所以我知道这是因为该函数是同步运行的,但我无法找出以特定顺序运行它们的最佳方法。
如果我改为在 useEffect 中运行 api 调用,如下所示:
useEffect(()=> {
saveData()
}, [data])
const handleChange = (stuff) => {
//changing stuff to format
setData([stuff])
saveData()
}
const saveData = () => {
callServer(data)
}
然后在初始渲染上调用 saveData 函数,因为初始状态是由 api 调用设置的。
谢谢你的帮助。
解决方案
推荐阅读
- python - 使用 xpath 查看要抓取的特定元素
- css - 如何在日用品之间设置更大的空间?
- json - 散景 Websocket 关闭连接:JSON 输入意外结束
- java - Project Loom 早期访问 IDE
- ubuntu - Ubuntu 20 打破了我的 arm-none-eabi-g++ 设置
- node.js - MongoDB:服务器实例池被破坏的问题
- sql - is not null 不消除空值
- r - 如何使用 Rstudio 清理我的数据库?
- sharp - 使用 memfs 错误测试尖锐:[错误:输入文件丢失]
- python-3.x - 在烧瓶 api 中找不到 Gcloud