vue中for循环作用域问题处理方式

 更新时间:2023年11月18日 08:41:20   作者:钥零零  
这篇文章主要介绍了vue中for循环作用域问题处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

最近在一个需求开发中,遇到作用域问题导致了疯狂报错,需求是需要在一个数组中找到typeName为生活权益N选1的对象,将其中resourceList中所有对象的expenseId拼接起来作为入参进行接口调用,如果调用返回成功则设置该对象的isReceive为0

rightsList列表格式:

"rightsList": [
      {
        "typeName": "互联网权益N选1",
        "isReceive": '1',
        "resourceList": [
          {
            "expenseId": "ZY",
          },
          {
            "expenseId": "ZY",
          }
        ]
      },
      {
        "typeName": "生活权益N选1",
        "isReceive": '1',
        "resourceList": [
          {
            "expenseId": "ZY",
          },
          {
            "expenseId": "ZY",
          }
        ]
      }
    ]

这里由于需要遍历查找typeName,并为当前对象的isReceive赋值,所有将接口调用写在了for循环中,当接口调用成功将值赋给了this.rightList[i],但运行后一直报错没有isReceive的属性

问题

由于这里使用的var初始化i变量,并没有块作用域,使用for循环进行i的递增,而接口回调是异步操作,当接口调用完成后对this.rightList[i]进行赋值时,i的值已经递增到了this.rightList.length,所以取不到isReceive属性

解决

1.不在循环中执行接口调用

循环查出typeName为“生活权益N选1”的下标值,在接口调用完成后直接赋值(已实践)

2.不使用var

使用let关键字,let作为es6的方法有块作用域

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue组件生命周期三个阶段全面总结讲解

    Vue组件生命周期三个阶段全面总结讲解

    Vue的生命周期就是vue实例从创建到销毁的全过程,也就是new Vue() 开始就是vue生命周期的开始。Vue 实例有⼀个完整的⽣命周期,也就是从开始创建、初始化数据、编译模版、挂载Dom -> 渲染、更新 -> 渲染、卸载 等⼀系列过程,称这是Vue的⽣命周期
    2022-11-11
  • vue项目中使用lib-flexible解决移动端适配的问题解决

    vue项目中使用lib-flexible解决移动端适配的问题解决

    这篇文章主要介绍了vue项目中使用lib-flexible解决移动端适配的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Vue.js数字输入框组件使用方法详解

    Vue.js数字输入框组件使用方法详解

    这篇文章主要为大家详细介绍了Vue.js数字输入框组件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • vue使用el-table动态合并列及行

    vue使用el-table动态合并列及行

    这篇文章主要为大家详细介绍了vue使用el-table动态合并列及行,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • vue-router实现tab标签页(单页面)详解

    vue-router实现tab标签页(单页面)详解

    这篇文章主要为大家详细介绍了vue-router实现tab标签页的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • vue @click与@click.native,及vue事件机制的使用分析

    vue @click与@click.native,及vue事件机制的使用分析

    这篇文章主要介绍了vue @click与@click.native,及vue事件机制的使用分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue3-print-nb实现页面打印(含分页打印)示例代码

    vue3-print-nb实现页面打印(含分页打印)示例代码

    大多数后台系统中都存在打印的需求,在有打印需求时,对前端来说当然是直接打印页面更容易,下面这篇文章主要给大家介绍了关于vue3-print-nb实现页面打印(含分页打印)的相关资料,需要的朋友可以参考下
    2024-01-01
  • Vue3实现折叠面板组件的示例代码

    Vue3实现折叠面板组件的示例代码

    折叠面板大家都不陌生,很多时候需要实现一些复杂的交互,就会用到它,简洁直观还美观,下面就跟随小编一起学习一下如果使用Vue3实现折叠面板组件吧
    2024-01-01
  • vue 获取url参数、get参数返回数组的操作

    vue 获取url参数、get参数返回数组的操作

    这篇文章主要介绍了vue 获取url参数、get参数返回数组的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 基于Vue3+TypeScript的全局对象的注入和使用详解

    基于Vue3+TypeScript的全局对象的注入和使用详解

    这篇文章主要介绍了基于Vue3+TypeScript的全局对象的注入和使用,本篇随笔主要介绍一下基于Vue3+TypeScript的全局对象的注入和使用,需要的朋友可以参考下
    2022-09-09

最新评论