【发布时间】: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