首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用React.findDOMNode函数

无法使用React.findDOMNode函数
EN

Stack Overflow用户
提问于 2015-04-04 15:30:30
回答 4查看 18.4K关注 0票数 14

由于某些原因,我不能使用React.findDOMNode函数。浏览器抱怨类型错误,说React.findDOMNode不是一个函数。这是发生这种情况的代码:

代码语言:javascript
复制
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的其余部分运行得很好,所以我不知道这里会有什么问题。

EN

回答 4

Stack Overflow用户

发布于 2016-04-14 21:50:49

在React 15 (可能还有一些更早的版本,我不确定)中,你根本不需要findDOMNode来使用refs:

代码语言:javascript
复制
this.refs.brand.value

就足够了。

票数 39
EN

Stack Overflow用户

发布于 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。

票数 14
EN

Stack Overflow用户

发布于 2017-08-01 13:18:27

findDOMNode方法已经从react模块移到了react-dom模块。

因此,您需要从react-dom模块导入或请求ReactDOM,然后替换

代码语言:javascript
复制
var brand = React.findDOMNode(this.refs.brand).value.trim();

使用

代码语言:javascript
复制
var ReactDOM = require('react-dom');
var brand = ReactDOM.findDOMNode(this.refs.brand).value.trim();
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29443889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档