我正在开发一个应用程序,该应用程序需要在页面加载时进行多个API调用,并且需要在每次API调用时更改组件的单个状态。该架构如下所示。
const [stateForm, setStateForm] = useState(.....)
useEffect(()=>{
//FIRST API CALL
setStateForm({....})
},[])
useEffect(()=>{
//SECOND API CALL
setStateForm({....})
},[])
useEffect(()=>{
//THIRD API CALL
setStateForm({....})
},[])
//SO ON.....
我的问题是:以这种方式引起副作用可以吗?每次useEffect钩子的状态改变都会引起多重渲染吗?
答案 0 :(得分:1)
以这种方式引起副作用可以吗?
没有错,所以通常没问题。但是,很难说出比这更明确的东西了-没有太多信息可以判断这种使用一系列API的结果来覆盖相同状态的模式,这些API通常是异步的,完成时间或失败时间不明。
每次使用状态变化都会影响效果钩子吗?
React可以批量处理setStateForm
触发的一系列重新渲染,因此只有一个重新渲染。如果setStateForm
必须处理Promises,那么React将不会使用批处理,否则可能会或可能不会。