Если вы не хотите использовать useReducer
, можете использовать Promise.all
со своими выборками
useEffect(()=>{
const stateData = {}
const fetch1 = axios.get('http://localhost:81/api/myapi/')
const fetch2 = axios.get('http://localhost:81/api/mysecondapi/')
Promise.all([fetch1, fetch2]).then(([res1,res2])=>{
setName(res1.data['name']);
setPrice(res1.data['price']);
setColors(res2.data['colors']);
})
},[]);
Это приведет к 3-кратному повторному рендерингу, но это не то же самое, что 3-кратноеОбновления DOM.
Если вы хотите только один повторный рендеринг, объедините все ваши обновления в один объект:
Promise.all([fetch1, fetch2]).then(([res1, res2]) => {
setNamePriceColor({ name: res1.data['name'],
price: res1.data['price'],
colors: res2.data['colors'] })
})