Vue-cli3.x + TSX踩坑 Cannot read property '$createElement' of undefined


目的:为了在组件中返回JSX语法的VueComponent
报错:Cannot read property '$createElement' of undefined
代码:

import { Component, Vue } from 'vue-property-decorator';

@Component
export default class App extends Vue{
  private getSpan(){
    return <span>不会报错</span>
  }
  private getError = () => {
    return <span>我在编译时就会报错,原因是箭头函数改变了this的指针,导致这里面的this指向的是App的实例,而不是被@Component包裹后的实例</span>
  }
  render(){
    return (
      <div>
        { this,getSpan() }
        { this.getError() }
      </div>
    )
  }
}

总结:使用@Component装饰器的方式创建的组件对象中,外层尽量不要使用箭头函数,特别是Vue自身的函数,例如render、created、mounted...


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,088评论 0 29
  • 前几天想学学Vue中怎么编写可复用的组件,提到要对Vue的render函数有所了解。可仔细一想,对于Vue的ren...
    kangaroo_v阅读 116,196评论 13 171
  • 深入响应式 追踪变化: 把普通js对象传给Vue实例的data选项,Vue将使用Object.defineProp...
    冥冥2017阅读 4,908评论 6 16
  • 40、React 什么是React?React 是一个用于构建用户界面的框架(采用的是MVC模式):集中处理VIE...
    萌妹撒阅读 1,075评论 0 1
  • 因人节气奈何天,泥煞衾函梦不圆。 苦雨泼寒宵似冰,百虫声里怯孤眠。这四句截取自钱锺书和杨绛恋爱时写给她的小诗《壬申...
    白玉蝉笈阅读 929评论 0 0