javascript - React 的 getDOMNode 总是返回组件的根 DOM 节点而不是引用的节点

标签 javascript reactjs

我正在努力在 React 中使用 refs。它们总是返回组件的根 DOM 节点而不是引用的节点。

请考虑以下示例:

  var AuthApp = React.createClass({
    onSubmitClick: function(event) {
      var usernameInput = this.getDOMNode(this.refs.username);

      // This logs root <div> instead of <input>, why???
      console.log(usernameInput); 
    },


    render: function() {
      return (
        <div>
          <input type="text" ref="username"/>
          <input type="password" ref="password"/>
          <input type="submit" onClick={this.onSubmitClick} />
        </div>
      );
    }
  });

我检查了优秀的 Chrome React 插件中的代码,似乎 this.refs.username正确反射(reflect) <input>标签:

screenshot of React/Chrome inspector

当我调用 this.getDOMNode 时发生错误- 它返回根 <div>render() 中指定而不是 <input> .

此代码来自 React 0.12,但我尝试在 0.13 上执行相同的操作(我知道对 React.findDOMNode() 的更改)并且我得到了相同的结果。

我做错了什么?

最佳答案

你应该使用

var usernameInput = React.findDOMNode(this.refs.username);

使用 refs 获取对组件的 DOM 节点的引用。

getDOMNode 方法有 been deprecated

getDOMNode is deprecated and has been replaced with React.findDOMNode().

关于javascript - React 的 getDOMNode 总是返回组件的根 DOM 节点而不是引用的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29894093/

相关文章:

javascript - 在 React JS 中需要带有变量的文件

javascript - 如何在高阶函数中进行没有返回值的回调

javascript - 如何从reactJS另一个模块中的文本字段访问值

javascript - React 对象迭代

css - 如何用两种颜色制作一个背景?

javascript - 可以直接选择第一个后代吗?

javascript - Ajax 调用使 Sprite 运动闪烁 javascript

reactjs - 如何在 React Native 中加密数据(使用 Expo)

javascript - 在 React 中使用 $.ajax 获取数据不起作用

javascript - 无法从 Javascript 获取返回值