目的:
根据查到的子分类,将其父分类也查出来,放入其中。
使用方法:
将子分类中的父分类字段去重后放入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印象中不是深拷贝吧