无法设置只有getter的{X的属性className

时间:2015-11-04 18:01:39

标签: javascript reactjs

中浏览器控制台中的完整错误
  

未捕获的TypeError:无法设置只有getter

的#的属性className

每次动作发生时,我都会尝试使用Javascript编写一个类,这就是代码

performClick (sideBet) {

  switch (sideBet) {
    case 'SuitEmUp':
      document.getElementById('SuitEmUp').className = 'animated shake';
      break;

    case 'PerfectPairs':
      document.getElementById('PerfectPairs').className = 'animated shake';
      break;

    default:
      console.log('Sorry, we are out of ' + sideBet + '.');
  }

}

然后在我的Reactjs应用程序中将该代码更改为仅

performClick (sideBet) {

 this.refs[sideBet].getDOMNode().className = 'animated shake';

}

并出现同样的错误。 。

HTML

    <div ref="sideBetsLeft">

      <svg id="PerfectPairs" onClick={this.performClick.bind(this, 'PerfectPairs')}
           ref="PerfectPairs" className="side-bet" viewBox={viewBoxVal}></svg>

      <svg id="SuitEmUp" onClick={this.performClick.bind(this, 'SuitEmUp')}
           ref="SuitEmUp" className="side-bet" viewBox={viewBoxVal}></svg>

    </div>

所以,我不知道这里发生了什么。有什么建议吗?

1 个答案:

答案 0 :(得分:3)

尝试设置class属性,而不是设置属性className

this.refs[sideBet].getDOMNode().setAttribute('class', 'animated shake');