我在組合這兩個不同的 api 回應時遇到了問題。
const pastData = useSelector(
(state) => state.transactions.pastData,
);
const latestData = useSelector(
(state) => state.transactions.latestData,
);
pastData回應形狀:{loading: false, data: Array(3)}
latestData回應形狀:{loading: false, data: Array(6)}
我嘗試使用以下方法將它們組合起來:
const combinedResponse = {...pastData, ...latestData}
但是當我登錄時combinedResponse,它沒有按預期作業。
預期的輸出是像這樣合并來自回應的資料{loading: false, data: Array(9)}
uj5u.com熱心網友回復:
const combinedResponse = {loading: pastData[0].loading, data: pastData}
latestData.map((element)=> {combinedResponse.data.push(element.data)})
初始值可以根據您的選擇進行更改。可以為空 [ ] 或 latestData。
然后,需要將資料推送到combinedResponse 的資料中。
uj5u.com熱心網友回復:
請參閱這些最簡單的方法:
var callOne = useCallback(async()=>{
//...do call
//Return response
},[])
var callTwo = useCallback(async()=>{
//...do call
//Return response
},[])
const combineData = (r1,r2) => {
return {isLoading: r1?.isLoading, data: [...r1?.data || [], ...r2?.data || []]}
}
useEffect(()=>{
var result = await callOne();
var result2 = await callTwo();
//COMBINE LOGIC
combineData(result, result2);
},[])
uj5u.com熱心網友回復:
嘿,這就是你可以合并兩者的方法
const pastData = useSelector(
(state) => state.transactions.pastData,
);
const latestData = useSelector(
(state) => state.transactions.latestData,
);
const pastDataArr = pastData?.data ?? []
const latestDataArr = latestData?.data ?? []
const finalData = [...pastDataArr , ...latestDataArr];
const combinedResponse = {
loading:latestDataArr?.loading,
data:finalData
}
您現在可以使用 combineResponse 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/503803.html
上一篇:如何在類組件“useWindowDimensions”中使用ReactHooks
下一篇:提交后在陣列中添加物件
