前端解决后端接口返回数组类型数据为空的报错

简介: 前端解决后端接口返回数组类型数据为空的报错

问题:

开发过程中,我们可能会取接口返回的数组数据的第一项,进行页面渲染。当某一用户的该数据为空时,就会出现未定义的报错。

如下:

2020062310470442.png

<script>
export default {
  data() {
    return {
      dealItem:{}
    };
  },
  methods:{
    getPersonInfo(){
      this.sendRequest({ // 获取待办数据
        url : `flow/act/flowTask/qureyHandleTasks`,
        method : "GET",
        data : {
          userId:userId,
          taskName:'入库',
          processDefinitionId:'sample:1:35016'
        },
        hideLoading : true,
        success: (res) => {
          if(res.code === 0){
            this.dealItem = res.data.datas[0]
            this.judgeState()
          }
        }
      })
    },
    judgeState(){
      if(this.dealItem.progress === 100){
        this.state = true
        this.dealItem.stateContent = '已通过'
      }else{
        this.state = false
        this.dealItem.stateContent = '待通过'
      }
    }
  },
  beforeMount(){
    this.getPersonInfo()
  }
}
</script>

报错:

2020062310470442.png

解决:
1.给定默认值;
2.判断是否为空,为空时使用给定的默认值;

<script>
export default {
  data() {
    return {
      dealItem:{
        sampleName: "无待办",
        stateContent: "无待办",
        progress:100,
        taskName: "无待办"
      }
    };
  },
  methods:{
    getPersonInfo(){
      this.sendRequest({ // 获取待办数据
        url : `flow/act/flowTask/qureyHandleTasks`,
        method : "GET",
        data : {
          userId:userId,
          taskName:'入库',
          processDefinitionId:'sample:1:35016'
        },
        hideLoading : true,
        success: (res) => {
          if(res.code === 0){
            if(res.data.datas.length === 0){
              return
            }else{
              this.dealItem = res.data.datas[0]
              this.judgeState()
            }
          }
        }
      })
    },
    judgeState(){
      if(this.dealItem.progress === 100){
        this.state = true
        this.dealItem.stateContent = '已通过'
      }else{
        this.state = false
        this.dealItem.stateContent = '待通过'
      }
    }
  },
  beforeMount(){
    this.getPersonInfo()
  }
}
</script>
相关文章
|
22天前
|
JavaScript 前端开发 算法
前端优化之超大数组更新:深入分析Vue/React/Svelte的更新渲染策略
本文对比了 Vue、React 和 Svelte 在数组渲染方面的实现方式和优缺点,探讨了它们与直接操作 DOM 的差异及 Web Components 的实现方式。Vue 通过响应式系统自动管理数据变化,React 利用虚拟 DOM 和 `diffing` 算法优化更新,Svelte 通过编译时优化提升性能。文章还介绍了数组更新的优化策略,如使用 `key`、分片渲染、虚拟滚动等,帮助开发者在处理大型数组时提升性能。总结指出,选择合适的框架应根据项目复杂度和性能需求来决定。
|
23天前
|
存储 前端开发 JavaScript
前端的全栈之路Meteor篇(四):RPC方法注册及调用-更轻量的服务接口提供方式
RPC机制通过前后端的`callAsync`方法实现了高效的数据交互。后端通过`Meteor.methods()`注册方法,支持异步操作;前端使用`callAsync`调用后端方法,代码更简洁、易读。本文详细介绍了Methods注册机制、异步支持及最佳实践。
|
29天前
|
人工智能 前端开发 JavaScript
拿下奇怪的前端报错(一):报错信息是一个看不懂的数字数组Buffer(475) [Uint8Array],让AI大模型帮忙解析
本文介绍了前端开发中遇到的奇怪报错问题,特别是当错误信息不明确时的处理方法。作者分享了自己通过还原代码、试错等方式解决问题的经验,并以一个Vue3+TypeScript项目的构建失败为例,详细解析了如何从错误信息中定位问题,最终通过解读错误信息中的ASCII码找到了具体的错误文件。文章强调了基础知识的重要性,并鼓励读者遇到类似问题时不要慌张,耐心分析。
|
30天前
|
人工智能 前端开发 JavaScript
前端大模型入门(二):掌握langchain的核心Runnable接口
Langchain.js 是 Langchain 框架的 JavaScript 版本,专为前端和后端 JavaScript 环境设计。最新 v0.3 版本引入了强大的 Runnable 接口,支持灵活的执行方式和异步操作,方便与不同模型和逻辑集成。本文将详细介绍 Runnable 接口,并通过实现自定义 Runnable 来帮助前端人员快速上手。
|
1月前
|
JSON 前端开发 数据格式
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
文章详细讲解了在SpringMVC中如何使用`@RequestMapping`进行路由映射,并介绍了前后端参数传递的多种方式,包括传递单个参数、多个参数、对象、数组、集合以及JSON数据,并且涵盖了参数重命名和从URL中获取参数的方法。
69 0
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
|
2月前
|
SQL JSON Java
springboot 如何编写增删改查后端接口,小白极速入门,附完整代码
本文为Spring Boot增删改查接口的小白入门教程,介绍了项目的构建、配置YML文件、代码编写(包括实体类、Mapper接口、Mapper.xml、Service和Controller)以及使用Postman进行接口测试的方法。同时提供了SQL代码和完整代码的下载链接。
springboot 如何编写增删改查后端接口,小白极速入门,附完整代码
|
2月前
|
存储 前端开发 JavaScript
前端基础(十一)_函数声明及调用、函数的形参与实参、arguments参数、函数的参数类型、函数中的问题
本文介绍了JavaScript中函数的声明及调用、形参与实参的概念、arguments对象的使用、函数参数的类型以及函数中this的作用。通过示例代码详细解释了函数如何接收参数、如何处理参数个数不匹配的情况,以及函数在不同上下文中this的指向。
23 1
|
2月前
|
前端开发 小程序 开发者
小程序的前端 display 有什么类型?
【9月更文挑战第4天】小程序的前端 display 有什么类型?
63 4
|
2月前
|
前端开发 JavaScript
前端基础(十六)_数组对象
本文详细介绍了JavaScript中数组对象的创建和操作方法,包括数组的增删改查、排序、去重、迭代等常用操作。
18 0
|
2月前
|
前端开发 小程序 开发者
小程序的前端 display 有什么类型?
【9月更文挑战第1天】小程序的前端 display 有什么类型?
49 2