2016-07-25 16 views
-1

今、Meteor and 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}} 

リアクションでも使用できますか?

答えて

1

のために行う代わりの反応 - 流星-データIを使用しなければならないユーザーでログインして確認する必要がありますultimatejs:tra cker反応し

輸出デフォルトのクラスLoginFormはTrackerReact(コンポーネント){あなたはそれが真または偽を返すMeteor.loggingIn()を使用して確認することができます

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はこれをより詳細に説明しています。

メテオのデータは、コンポーネントにpropsとして渡す必要があります。コンポーネントは、その小道具の変更に基づいて再レンダリングする必要があります。

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

を拡張します。あなたのコンポーネント(LoginForm)で

あなたはこの

 state = { 
       isLoggedIn: false, 
      } 

      componentDidMount() { 
       this.setState({ isLoggedIn: Meteor.loggingIn() }); 
      } 
render(){ 
    return(
      <div> 
      <b>{isLoggedIn ? is login : is not login}</b> 
      </div> 
); 
のように確認することができます
関連する問題