【问题标题】:React Dom is undefinedReact Dom 未定义
【发布时间】:2018-12-20 08:52:13
【问题描述】:

我正在浏览他们网站上的 Meteor 教程(我只是复制粘贴他们正在做的事情),我遇到了一个错误,说 ReactDOM 未定义

这恰好是我在 App.js 中的代码(即使我使用的是 Meteor,但我怀疑流星可能是同样的原因)

import React, { Component } from 'react';
import { withTracker } from 'meteor/react-meteor-data';
import { Tasks } from '../api/tasks.js';
import Task from './task.js';

//WithTracKer is HOC
// App component - represents the whole app
class App extends Component {
  handleSubmit(event) {
    event.preventDefault();
    // Find the text field via the React ref
    const text = ReactDOM.findDOMNode(this.refs.textInput).value.trim();

    Tasks.insert({
      text,
      createdAt: new Date(), // current time
    });

    // Clear form
    ReactDOM.findDOMNode(this.refs.textInput).value = '';
  }
//  getTasks() {
//    return [
//      { _id: 1, text: 'This is task 1' },
//      { _id: 2, text: 'This is task 2' },
//      { _id: 3, text: 'This is task 3' },
//    ];
//  }

  renderTasks() {
    console.log("here 2")
  //  return this.getTasks().map((task) => (
      return this.props.tasks.map((task) => (
      <Task key={task._id} task={task} />
    ));
  }

  handleSubmit(event) {
   event.preventDefault();
   // Find the text field via the React ref
   const text = ReactDOM.findDOMNode(this.refs.textInput).value.trim();
   Tasks.insert({
     text,
     createdAt: new Date(), // current time
   });
   // Clear form
   ReactDOM.findDOMNode(this.refs.textInput).value = '';
 }


  render() {
    return (
      <div className="container">
        <header>
          <h1>Todo List</h1>
          <form className="new-task" onSubmit={this.handleSubmit.bind(this)} >
            <input
              type="text"
              ref="textInput"
              placeholder="Type to add new tasks"
            />
          </form>
        </header>

        <ul>
          {this.renderTasks()}
        </ul>
      </div>
    );
  }
}

export default withTracker(() => {
  return {
    tasks: Tasks.find({}, { sort: { createdAt: -1 } }).fetch()
  };
})(App);

谁能告诉我我做错了什么以及如何解决?

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    因为你使用的是ReactDOM. findDOMNode而忘记导入它,所以使用这一行来导入它:

    import ReactDOM from 'react-dom'
    

    如果你没有安装它,那么检查这个答案,如何安装:Cannot resolve module 'react-dom'

    【讨论】:

      【解决方案2】:

      我认为你错过了这个:

      import ReactDOM from 'react-dom';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-11
        • 2021-06-25
        • 1970-01-01
        • 2023-01-28
        • 2020-03-30
        • 2018-10-24
        • 1970-01-01
        • 2021-09-20
        相关资源
        最近更新 更多