REACTJS getDOMNode在未定义的动态refs上出错

REACTJS getDOMNode Error on undefined dynamic refs

本文关键字:refs 出错 动态 getDOMNode 未定义 REACTJS      更新时间:2023-09-26

我试图从一个动态对象中获得一个DOM节点,但我在Chrome控制台得到以下错误:未捕获的类型错误:无法读取未定义的属性'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'));

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

return (<div refs={...

我认为你想要

return (<div ref={...

在您的小提琴的第22行,您使用refs而不是ref。我想这应该能解决你的问题。