目的:
根據查到的子分類,將其父分類也查出來,放入其中。
使用方法:
將子分類中的父分類欄位去重後放入par_arr,然後遍歷par_arr去取父分類,再將結果插入子分類的集合中。
問題:
console.log(res);的結果包含了父分類,但元件未重新渲染。
網路上說用深拷貝Object.assign(),我把
res.data.push(item.data);
改為
Object.assign(res.data,item);
也沒用。
export function fetch(){
bardata = request('/api/categories').then(res=>{
//将父分类去重,放入par_arr
var par_obj={};
var par_arr=[];
res.data.map(d=>{
let _par=d.parent;
if(!par_obj[_par] && _par!=0){
par_obj[_par]=1;
par_arr.push(d.parent);
}
});
//根据par_arr获取父分类数据
Promise.all(par_arr.map(id=>getOne(id))).then(res1=>{
res1.map(item=>{
res.data.push(item.data);
})
});
console.log(res);
return res;
})
return bardata;
}
改了n種方法,查了n遍百度,被這個問題困了一禮拜了
請教。 。
這都能困然一個禮拜? ?
提供一下思路,react的更新要么是this.setState觸發,要么是redux dispatch事件觸發
深拷貝用
...
展開符,展開就行了Object.assign印像中不是深拷貝吧