2016-07-25 47 views
-1

我正在嘗試在Meteor和React中創建一個登錄系統。 我想顯示不同的內容,這取決於羯羊或沒有用戶登錄。(Meteorjs/React)檢查用戶是否已登錄

export default class LoginForm extends Component { 

render() { 
    if (Meteor.userId() === null) return(// if user is not logged in 
     display HTML stuff); 
    } 

    return(// user is logged in 
     display other stuff 
    ); 
} 
} 

,這並不爲Meteor.userId工作()在登錄後總是不確定的。

是否有其他可能性?我有這樣的火焰:

{{#if currentUser}} doStuff{{/if}} 

也可以在React中使用它嗎?

回答

1

做相反的反應,流星數據我用ultimatejs:TRA克爾反應的

出口默認類LoginForm的擴展TrackerReact(組件){

render() { 
    if(Meteor.user())return (...); // user logged in 
    if (Meteor.user()===null)return(...); // user logged out 
    //else page is connecting to backend 
    } 
} 
3

react-meteor-data包是專爲集成而設計的。 Meteor guide更詳細地解釋了這一點。

流星數據應作爲道具傳入組件。該組件應根據對道具的更改重新呈現自身。

0
if(Meteor.user()){ 
} 

if(Meteor.userId()){ 
} 

應檢查登錄的用戶

export default class LoginForm extends Component { 

render() { 
if (Meteor.userId()){ 
let elementToBeRendered = 
//your elements 
<form></form> 
} 
else{ 
let elementToBeRendered = //your other elements 
} 
return (
{elementToBeRendered} 
) 
} 
} 

應該爲你

感謝

0

您可以通過使用Meteor.loggingIn()它返回true或false檢查。

在組件(LoginForm的)

您可以檢查這樣

 state = { 
       isLoggedIn: false, 
      } 

      componentDidMount() { 
       this.setState({ isLoggedIn: Meteor.loggingIn() }); 
      } 
render(){ 
    return(
      <div> 
      <b>{isLoggedIn ? is login : is not login}</b> 
      </div> 
);