美文网首页
解决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