通过refs设置为变量来反应查找DOM节点?

时间:2015-10-14 01:11:26

标签: javascript meteor reactjs meteor-react

我正在动态创建多个文本输入(使用动态创建的引用)和我想要用输入更新的文本。

我试图通过将ref设置为变量并使用React.findDOMNode(this.refs.Variable)找到DOM节点来获取输入的值.value

我得到一个"无法阅读财产'价值' of null"错误。

我怎样才能做到这一点?

这就是函数的样子:

resetUnit: function(e){
  var refID = e.target.id;
  var ID = refID.split("-")[0];
  var Value = React.findDOMNode(this.refs.refID).value;
  NodesCollection.update({_id: ID},{$set: { materialUnit : Value}});
  this.setState({
    edit: ''
  });
},

3 个答案:

答案 0 :(得分:12)

var Value = React.findDOMNode(this.refs.refID).value;

找到具有ref "refID"的组件的DOM节点。如果要查找具有ref refID(变量)的组件的DOM节点,则需要

var Value = ReactDOM.findDOMNode(this.refs[refID]).value;

答案 1 :(得分:2)

我不得不做

import ReactDOM from 'react-dom';
ReactDOM.findDOMNode(this.refs.hi);

在React 15.2.1(https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode

答案 2 :(得分:0)

  

我得到一个"无法阅读财产'价值' of null"错误。

两种可能的情况:

  • id错了。查看更多代码或log以仔细检查ID是否是您认为的
  • 早叫:您确定已拨打componentDidMount吗?