搜索

首页  >  问答  >  正文

javascript - react嵌套循环获取数据时,组件不更新

目的:
根据查到的子分类,将其父分类也查出来,放入其中。

使用方法:
将子分类中的父分类字段去重后放入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遍百度,被这个问题困了一礼拜了

请教。。

女神的闺蜜爱上我女神的闺蜜爱上我2782 天前712

全部回复(1)我来回复

  • 给我你的怀抱

    给我你的怀抱2017-06-12 09:26:20

    这都能困然一个礼拜??

    提供一下思路,react的更新要么是this.setState触发,要么是redux dispatch事件触发

    深拷贝用...展开符,展开就行了Object.assign印象中不是深拷贝吧

    回复
    0
  • 取消回复