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是什么意思?

推荐问题
宣传栏