2016-04-21 11 views
0

ReelでMeteor 1.3を使用していますが、このエラーが発生しました。ブラウザでコンソールを使用すると、すべてが完璧に動作します。Uncaught TypeError:DB.findはReact with Meteor 1.3の関数ではありません

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) { 
 

 
\t \t constructor(){ 
 
\t   super(); 
 

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

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

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

 
\t \t render() { 
 

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

と私は、このエラーメッセージました:

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

+1

ツールは、あなたのクラスの名前である、それはあなたがあなたのツールを持ってどこにどのような名前を付けなかった、それにfindメソッドを持っていませんか? – JordanHendrix

答えて

0

Toolsをあなたのコードで反応するコンポーネントです。 findは、Reactコンポーネントではなく、コレクションで使用する必要があります。 Meteor.Collectionを定義する必要があります。

ここでのコード例を参照してください:https://github.com/ultimatejs/tracker-react

+0

私は今、感謝しました。私のコレクションはReactコンポーネントと同じ名前でした。 –

関連する問題