由于某些原因,我不能使用React.findDOMNode函数。浏览器抱怨类型错误,说React.findDOMNode不是一个函数。这是发生这种情况的代码:
var React = require('react');
var Backbone = require('backbone');
var Car = require('models/car');
var NewCarForm = React.createClass({
handleSubmit: function(e) {
e.preventDefault();
var brand = React.findDOMNode(this.refs.brand).value.trim();
...
this.props.handleNewCar(new Car({brand: brand, model:model, name:name, kmTraveled:odometer, litresSpent:litres}));
return;
},
render: function() {
console.log("Inside NewCarForm");
return (
<form className="contentSection" onSubmit={this.handleSubmit}>
<input type="text" placeholder="Car Brand" ref="brand" />
...
<input type="submit" value="Post" />
</form>
);
}
});
module.exports = NewCarForm;
这是我尝试使用此函数的唯一模块。React的其余部分运行得很好,所以我不知道这里会有什么问题。
发布于 2016-04-14 21:50:49
在React 15 (可能还有一些更早的版本,我不确定)中,你根本不需要findDOMNode来使用refs:
this.refs.brand.value就足够了。
发布于 2015-04-04 17:23:36
React.findDOMNode(component)是在React 0.13.0中作为component.getDOMNode()的替代品引入的。
确保已安装React 0.13.1。如果您正在使用npm,您可以运行npm view react version来检查当前安装了哪个版本的React。
发布于 2017-08-01 13:18:27
findDOMNode方法已经从react模块移到了react-dom模块。
因此,您需要从react-dom模块导入或请求ReactDOM,然后替换
var brand = React.findDOMNode(this.refs.brand).value.trim();使用
var ReactDOM = require('react-dom');
var brand = ReactDOM.findDOMNode(this.refs.brand).value.trim();https://stackoverflow.com/questions/29443889
复制相似问题