天天看点

index,action,reducer,saga之间的运转,实现将一个接口返回数据,传到另个一个接口返回数据中index,action,reducer,saga之间的运转,实现将一个接口返回数据,传到另个一个接口返回数据中

index,action,reducer,saga之间的运转,实现将一个接口返回数据,传到另个一个接口返回数据中

index,action,reducer,saga之间的运转,实现将一个接口返回数据,传到另个一个接口返回数据中index,action,reducer,saga之间的运转,实现将一个接口返回数据,传到另个一个接口返回数据中
index,action,reducer,saga之间的运转,实现将一个接口返回数据,传到另个一个接口返回数据中index,action,reducer,saga之间的运转,实现将一个接口返回数据,传到另个一个接口返回数据中
  1. index ,在index文件中找到请求school接口的action,找到这个接口返回的数据,比如data,拿到data的index,此例中是data.data[index],在文件中通过map循环可以得到,拿到这个index;
  2. 第二个接口触发的方法中, this.props.onClickCardBottom(launchData, index);,将index传到saga文件当中;
  3. saga 文件通过 action.payload ,

    let indexTemp = action.payload.index;

    delete action.payload.index;//去掉index;防止传给后台的参数里面有index;

  4. 在 if (response.statusCode === 200) {}请求成功的时候;把index参数和response一起传给reducer;

    let params={

    index:indexTemp,

    response

    }; yield put(getClassSectionSuccess(params));

  5. 在reducer中通过action.payload拿到saga传过来的params参数;
  6. 再通过**_** 克隆一个state上面的值,也就是第一个接口返回的数据(classData);

    let newClassData:any = _.cloneDeep(state.classData);防止元数据被改变;

  7. newClassData.data.data[action.payload.index][‘lastWeekActiveRate’] = action.payload.response.data;

    return Object.assign({}, state, {

    ** classData: newClassData,**

    });

    让新的数据重新赋值给旧的返回值,也就是第一个接口返回的data;

    然后在index文件中取数据即可;