REACTJS getDOMNode未定义动态引用上的错误

时间:2015-09-11 22:48:43

标签: javascript jquery

我正在尝试从动态对象获取DOM节点引用,但我在Chrome控制台中收到以下错误: 未捕获的TypeError:无法读取属性' getDOMNode'未定义的。

https://jsfiddle.net/ux4rL8sf/6/

var Hello = React.createClass({
  getInitialState: function () {
      return {
        currentItems : [{"id":"1"} ,  {"id":"2"} , {"id":"3"}]
      };
    },

   onRowClick: function (i) {
     var x;
     if (i == 'abs') {
        x = this.refs[i].getDOMNode().scrollHeight;
     } else {
        x = this.refs['row' + i].getDOMNode().scrollHeight;
     }

     alert(x);

  },

    render: function() {
      var Items = this.state.currentItems.map(function(tv) {
             return (<div refs={"row" + tv.id} onClick={this.onRowClick.bind(this, tv.id)} > {tv.id}</div>);   
     }.bind(this)
  );
       return (<div> {Items} <div ref="abs" onClick={this.onRowClick.bind(this, 'abs')}>Test  </div> </div>) ;
    }
}
);

React.render(<Hello  />, document.getElementById('container'));

2 个答案:

答案 0 :(得分:1)

在小提琴的第22行,您使用refs代替ref。我认为应该解决你的问题。

答案 1 :(得分:1)

map方法中创建Items变量时,您提供给render的回调中有

return (<div refs={...

我想你想要

return (<div ref={...

代替。