ZBLOG

console.log('params', params) getCustomServiceList(params) .then((res) => { // let initDataOriginCopy = JSON.parse(JSON.stringify(initDataOrigin)) // //初始化 num:0 // initDataOriginCopy?.serviceDetailList?.map((serv...

你可以对这段代码进行优化,主要集中在减少嵌套、提高可读性和避免不必要的深拷贝。以下是经过优化后的代码:

console.log('params', params);
setLoading(true); // 在请求开始时设置 loading 状态

getCustomServiceList(params)
  .then((res) => {
    if (res?.code === 0) {
      const initDataOriginCopy = JSON.parse(JSON.stringify(res.data));
      
      // 初始化 num:0
      initDataOriginCopy?.serviceDetailList?.forEach(serviceDetail => {
        serviceDetail.serviceList.forEach(service => {
          service.num = 0;
        });
      });

      setInitData(initDataOriginCopy);
      setHasRes(true);
    }
  })
  .catch((error) => {
    console.error('Error occurred:', error);
  })
  .finally(() => {
    setLoading(false); // 确保 loading 状态在请求完成后被重置
  });

优化点说明:

  1. 简化嵌套:将 map 改为 forEach,因为我们并不需要返回一个新的数组,只是想遍历并修改现有对象。
  2. 提前设置 Loading 状态:确保在发起请求前就设置 loading 状态,避免可能的 UI 闪烁。
  3. 使用严格相等(===):建议使用严格相等操作符,以避免类型转换带来的潜在问题。
  4. 错误日志更清晰:改变了错误日志的格式,使其更加清晰易懂。

这样的结构会让你的代码更加简洁,逻辑也更加清晰。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=20628

分享:
扫描分享到社交APP
{ // let initDataOriginCopy = JSON.parse(JSON.stringify(initDataOrigin)) // //初始化 num:0 // initDataOriginCopy?.serviceDetailList?.map((serv...&appkey=&pic=&searchPic=true")' title="分享到新浪微博" class="weibo"> { // let initDataOriginCopy = JSON.parse(JSON.stringify(initDataOrigin)) // //初始化 num:0 // initDataOriginCopy?.serviceDetailList?.map((serv...")' title="分享到QQ好友" class="qq"> { // let initDataOriginCopy = JSON.parse(JSON.stringify(initDataOrigin)) // //初始化 num:0 // initDataOriginCopy?.serviceDetailList?.map((serv...")' title="分享到QQ空间" class="qqzone">
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?