通过将引用设置为变量来反应找到 DOM 节点?

React find DOM node by refs set to variable?

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

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

我遇到 "Cannot read property '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: ''
  });
},

I am getting a "Cannot read property 'value' of null" error.

两种可能的情况:

  • ID错误。查看更多代码或 log 仔细检查 ID 是否如您所愿
  • 提前调用:你确定componentDidMount已经调用了吗?
var Value = React.findDOMNode(this.refs.refID).value;

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

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

我不得不做

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)