2016-05-15 37 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

回答