【问题标题】:Uncaught TypeError: DB.find is not a function in React with Meteor 1.3未捕获的类型错误:DB.find 不是 React with Meteor 1.3 中的函数
【发布时间】:2016-04-22 06:15:41
【问题描述】:

我将 Meteor 1.3 与 React 一起使用,但出现此错误。如果我在浏览器中使用控制台,一切正常。

import React, {Component} from 'react';
import TrackerReact from 'meteor/ultimatejs:tracker-react';

import ToolsForm from './ToolsForm.jsx';
import ToolsCards from './ToolsCards.jsx';


export default class Tools extends TrackerReact(Component) {

		constructor(){
	        super();

	        this.state = {
	            subscriptions: {
	                tools: Meteor.subscribe('allTools')
	            }
	        }
	    }

	    componentWillUnmount() {
	        this.state.subscriptions.tools.stop();  
	    }

	    tools() {
	        return Tools.find().fetch();
	    } 

		render() {

			return (
				<div>
					<ToolsForm /> <br/><br/>
					<ul className="resolutions">
	                    {this.tools().map( (tool)=> {
	                        return <ToolsCards key={tool._id} tool={tool} />
	                    })}
	                </ul>
				</div>			
			)	
		}
		
}

我收到了这个错误信息:

   Uncaught TypeError: Tools.find is not a function tools @ Tools.jsx:25render @ Tools.jsx:35(anonymous function) 

【问题讨论】:

  • Tools 是你的类的名称,它没有 find 方法,你在哪里有你的工具的名字是什么?

标签: javascript jquery meteor reactjs


【解决方案1】:

Tools 是您代码中的一个 React 组件。 find 应该用于集合,而不是 React 组件。您需要定义一个Meteor.Collection

在此处查看示例代码:https://github.com/ultimatejs/tracker-react

【讨论】:

  • 我现在知道了,谢谢。我的集合与 React 组件同名。
猜你喜欢
  • 2015-07-20
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-16
相关资源
最近更新 更多