7

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

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

我收到“无法读取 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: ''
  });
},
4

3 回答 3

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

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

var Value = ReactDOM.findDOMNode(this.refs[refID]).value;
于 2015-10-14T01:28:51.140 回答
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 )

于 2016-08-14T23:59:16.127 回答
0

我收到“无法读取 null 的属性‘值’”错误。

两种可能的情况:

  • id错了。查看更多代码或log仔细检查 ID 是否与您认为的相同
  • Called to early:你确定componentDidMount已经被调用了吗?
于 2015-10-14T01:14:54.647 回答