vue 怎样解决 exports is not defined?

想要让一个函数在合适的条件下自我调用,相当于是这样子

function test(e){
    if (true){
        test(e[0])
    } else {
        console.log(xxx)
    }
}

测试的数据

[{name:'张三',age:11,like:{这里内容太多,不贴了}},{name:'李四',age:22,like:{这里内容太多,不贴了}}]

现在有一个自定义的全局函数文件:Helpers.js

exports.install = function (Vue) {
  /**
   * 先测试一下
   * @param obj {Array|Object}
   */
  Vue.prototype.valInObj = function (obj) {
    for (let k in obj) {
      console.log(obj[k])
    }
  }
}

当仅是这些时,能在控制台打印内容。


但是,当代码变为下面的时

  /**
   * 先测试一下
   * @param obj {Array|Object}
   */
  Vue.prototype.valInObj = function (obj) {
    for (let k in obj) {
      if (typeof obj[k] === 'object') {
        console.log('obj[' + k + ']是obj')
        this.valInObj(obj[k])
      } else {
        console.log(obj[k])
      }
    }
  }

终端报错
图片描述

控制台报错
图片描述


此时,我把代码改回原来正常的样子

  /**
   * 先测试一下
   * @param obj {Array|Object}
   */
  Vue.prototype.valInObj = function (obj) {
    for (let k in obj) {
      console.log(obj[k])
    }
  }

终端显示编译成功了,但控制台还是显示那个错误,这时候只有重新运行npm run dev,浏览器才能正常显示,否则做什么都无解。网上找了各种方法都试过了,还是无法解决这个错误。

阅读 7.7k
3 个回答
export function install(Vue) {
  /**
   * 先测试一下
   * @param obj {Array|Object}
   */
  Vue.prototype.valInObj = function (obj) {
    for (let k in obj) {
      console.log(obj[k])
    }
  }
}
export default {
    install(Vue)  {
        Vue.prototype.valInObj= {
            ...
        }
    }
}

换成这样试试,我也遇到这个问题,改成这样可以了

来问一下,exports.intall是什么意思?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏