Reactjs React 0.13此.getDOMNode()等效于React.findDOMNode()
这在React版本0.12中工作得非常好:Reactjs React 0.13此.getDOMNode()等效于React.findDOMNode(),reactjs,Reactjs,这在React版本0.12中工作得非常好: componentDidMount: function () { var dom = this.getDOMNode(); } 变量dom获取渲染组件的实际dom节点。但是,将其转换为React 0.13并不能按预期工作: componentDidMount: function () { var dom = React.findDOMNode(); // dom is undefined } 我尝试了React.findDO
componentDidMount: function () {
var dom = this.getDOMNode();
}
变量dom
获取渲染组件的实际dom节点。但是,将其转换为React 0.13并不能按预期工作:
componentDidMount: function () {
var dom = React.findDOMNode();
// dom is undefined
}
我尝试了
React.findDOMNode(this)
,但也不起作用。基本上,我只是尝试在不使用ref的情况下获取由render函数呈现的顶级dom节点。这可能吗?更新React v0.14+
在React v0.14+中,您现在应该使用模块:
ES6
类测试扩展了React.Component{
componentDidMount(){
const元素=ReactDOM.findDOMNode(this);
控制台日志(元素);
警报(要素);
}
render(){
返回(
测试
);
}
}
ReactDOM.render(,document.getElementById('r'))代码>
注意,从React v0.14开始
React.findDOMNode
变为ReactDom.findDOMNode(此)代码>哪里
var ReactDom = require('react-dom');
如React 15.0.1中所述,需要以下语法:ReactDOM.findDOMNode
e、 g
对于更复杂的元素,如在标准DOM元素上创建的React组件refs
只提供第一个DOM元素(组件的根元素),因此有时我们需要在其中找到所需的节点。很好的例子是材质Ui文本字段组件,以及我们如何从中获得价值
1.所需进口
import React, { Component } from 'react';
import TextField from 'material-ui/TextField';
import ReactDOM from 'react-dom';
2.虚拟dom和ref=“variable”
或对于多行:
ReactDOM.findDOMNode(this.refs.title).querySelector("textarea").value
我们从TextField
容器开始,使用标准的DOM查询querySelector
获取所需的输入元素。此解决方案适用于任何复杂的组件,我们始终可以在其中进行查询。在React(15.3.2)上测试。我认为您不需要使用ReactDOM.findDOMNode
,您可以使用简单的e.target.innerHTML
。在此选项中,您不需要导入ReactDOM
import React, { Component } from 'react';
import TextField from 'material-ui/TextField';
import ReactDOM from 'react-dom';
<TextField floatingLabelText="Some title" ref="title" />
ReactDOM.findDOMNode(this.refs.title).querySelector("input").value
ReactDOM.findDOMNode(this.refs.title).querySelector("textarea").value