【发布时间】:2021-06-11 08:13:30
【问题描述】:
我正在尝试在 setCustomState 挂钩中使用回调函数,我正在通过 API 调用设置状态值,然后获取该值并使用它进行更多 API 调用,问题是名为 的函数notTriggeredFunction,永远不会被调用,我不知道这里可能是什么问题。
我有如下:
const [record, setRecord] = useState([])
myFunction=()=>{
const ApiRes = await apicall()
setRecord(ApiRes, () => {
const arrayData = notTriggeredFunction(record) //does not get called
if (arrayData.length > 0) {
Promise.all(arrayData.map(e => fetchCurrent(e))).then(res =>
setRecord(
record => [...res, ...record],
() => resolve()
)
)
} else setLoading(false, () => resolve())
})
}
我已经阅读了文档和其他问题,但似乎我可能在这里遗漏了一些东西。
【问题讨论】:
-
setRecord状态更新器函数只接受一个参数,可以是用于更新状态的值,也可以是使用前一个状态并返回下一个状态值的函数。传递的任何额外参数都将被忽略。你想做什么?在record状态更新后调用该函数? -
感谢您的解释,您说得对,我正在尝试确保在执行以下逻辑之前更新状态,我想我可以找到使用 useEffect 或类似的解决方法,但只是我想了解我做错了什么,再次感谢您的澄清
标签: reactjs callback react-hooks