我正在尝试从动态对象获取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'));
答案 0 :(得分:1)
在小提琴的第22行,您使用refs
代替ref
。我认为应该解决你的问题。
答案 1 :(得分:1)
在map
方法中创建Items
变量时,您提供给render
的回调中有
return (<div refs={...
我想你想要
return (<div ref={...
代替。