2016-05-15 12 views
0

Reactテンプレート内のMeteorフェッチからデータを表示するためのさまざまな方法を試してきました。なぜこれが難しいのか、私は完全に理解していません。React/Meteorアプリケーションでユーザーデータを表示

それは{this.data.user._id}

getMeteorData() { 
    return { 
     user: Meteor.user() 
    }; 
    }, 

を使用する場合componentDidMountを使用する場合は、同じ物語であるデータを表示しないテンプレート内getMeteorDataを使用します。

私は流星のウェブサイトで流星のチュートリアル&に従って、彼らは小道具を使用しています。しかし、これは単にデータを取得して取得するための多くの作業を感じています。

これは、あなたがgetMeteorData()仕事をするためにReactMeteorDataミックスインを使用する必要が試み

export var MenuLoggedIn = React.createClass({ 
    displayName: 'MenuLoggedIn', 
    mixins: [ 
    Router.State, Router.Navigation 
    ], 
    getMeteorData() { 
    return { 
     user: Meteor.user() 
    }; 
    }, 
    getInitialState(){ 
    return { 
     avatarImagePreview: null, 
     avatarImage: null 
    }; 
    }, 

    render: function() { 
    return (
     <div className="container"> 
     <div className="menu-structure col-md-12"> 

      {this.data.user._id} 

      <div className="left-menu pull-left"> 
      <img className="logo" src="/img/logo.png"/> 
      <h1 className="eventburger-title">eventburger</h1> 
      </div> 
      <div className="right-menu"> 
      <div className="search-bar"> 
       <i className="fa fa-search"></i> 
       <input type="text" name="Search" placeholder="Harpist, Photographer, Caterer..."/> 
      </div> 

      {this.data 
       ? <img src="/img/avatar.png"/> 
       : <img src="/img/placeholder-person.jpg"/>} 

      <span>{this.data} 
       Feeney</span> 

      <a href="/app/inbox"> 
       <i className="fa fa-envelope"></i> 
      </a> 
      <a className="head-spacing" href="#" onClick={this.logout}>LOG OUT</a> 
      </div> 
     </div> 
     </div> 
    ); 
    }, 
    logout: function(e) { 
    e.preventDefault(); 
    Meteor.logout(); 
    window.location.href = "/login"; //Need to be moved to History 
    } 
}); 
+0

コンソールですべてのエラー? MeteorがソートされたWebSocket認証とユーザデータをクライアントに実際に渡すまで、 'data.user'が' null'と思われます。 – MasterAM

+0

エラーはありません。コンソールにdata.userを記録します。私は再レンダリングする必要がありますか? – Allreadyhome

+0

使用している実際のコードを見ることなく、難しい(ロギングがどこで発生するかわからない - 'render()'メソッドで正しくロギングされていれば問題はないはずです)。一般的に、 'getMeteorData()'ヘルパーは再実行され、従属する無効なデータソースが変更されるたびに再描画されます。 – MasterAM

答えて

関連する問題