2016-05-15 39 views
0

我一直在嘗試各種方法來顯示來自React模板中流星提取的數據。我不完全明白爲什麼這很難做到。用React /流星應用程序顯示用戶數據

當我在模板中使用getMeteorData它不使用{} this.data.user._id使用時,當componentDidMount顯示數據

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

這是同樣的故事。

我按照流星網站上的反應&流星教程,他們使用道具。然而,這對於簡單地提取和提取數據感到很多工作。

這是企圖

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

控制檯中的任何錯誤?我會懷疑'data.user'是'null',直到Meteor實際上獲得websocket身份驗證並將用戶數據發送到客戶端。 – MasterAM

+0

沒有錯誤。它會在控制檯中記錄data.user。我需要重新渲染嗎? – Allreadyhome

+0

很難說沒有看到你正在使用的實際代碼(不知道在哪裏發生日誌記錄 - 如果它在'render()'方法中正確記錄,那應該沒有問題)。通常,'getMeteorData()'助手應該重新運行,因此,只要依賴的反應性數據源發生變化就會重新呈現。 – MasterAM

回答