美文网首页
解决JavaScript Uncaught (in promis

解决JavaScript Uncaught (in promis

作者: 470d98b91bd3 | 来源:发表于2019-04-02 20:23 被阅读0次

先献上报错的代码

Object.defineProperty(this.props.labelInfo, '_desc', {
  get: () => {
    return this.props.labelInfo.desc
  },
  set: value => {
    this.props.labelInfo.desc = value
    this.setProperty('desc')
  }
})

反正就是因为业务需求需要对this.props.labelInfo的_desc属性赋值的时候,同步更新其desc属性。代码运行后首次加载就失败,打开控制台看到以下报错信息:

Uncaught (in promise) TypeError: Cannot redefine property: _desc

我开始在网上寻找解决方法,意外发现stackoverflow上已经有解决的方案,虽然不是我的问题所在,但是先把代码贴出来以防后续出现这个情况吧

建议将

object.rotation = object2.rotation
object.rotation = new THREE.Euler( 1, 0, 0 );

写成

object.rotation.copy( object2.rotation );
object.rotation.set( 1, 0, 0 )

其实我的真实问题是,this.props.labelInfo._desc并不存在,所以我需要在定义对象的时候对该字段进行赋值

// 错误代码部分
this.props = {
      id: uuid(),
      labelInfo
      ...
    }

// 正确代码
this.props = {
      id: uuid(),
      labelInfo: {
        _desc: '',
        ...labelInfo
      },
      ...
   }

在长期写JavaScript的过程中因为JavaScript是弱类型语言,很多时候就算不提前定义也不会影响到代码问题,所以很多时候自己就放松了警惕,同级在操作对象时,就算对象内不存在的属性也没有太多关系,但是这次是对不存在的属性进行属性级别的编辑,总而言之就是自己活该!不过这个报错信息也给我在debug的方向上有很大的误导作用

相关文章

网友评论

      本文标题:解决JavaScript Uncaught (in promis

      本文链接:https://www.haomeiwen.com/subject/vjzwvqtx.html