2016-06-15 17 views
0

私は、ユーザーがログインまたはログアウトした場合に基づいて異なるコンポーネントを表示するページを持っています。私が持っているレンダリング領域でMeteor Reactコンポーネントがログアウト時に更新されない

var layout; 
if (Meteor.userId()) { 
    layout = <BoxSignedIn />; 
} else { 
    layout = <BoxSignedOut />; 
} 

return (

      layout        
     ) 
    } 

は今、これは私がサインアウトしてアプリを更新する場合は、作業を行いますが、私はちょうど署名し、リフレッシュしていない場合は動作しません。ここ

コンポーネントにログインするためのコードである:

インポートからリアクトが「反応します」。 'react-dom'からReactDOMをインポートします。

export default class BoxSignedIn extends React.Component{ 

constructor(){ 
super(); 
} 

render(){ 
return ( 
        <div>signed in </div> 

     ) 
} 
} 
+0

StackOverflowへの投稿時にコードの書式を設定してください。質問をより迅速に理解するのに役立ちます。 – aedm

答えて

4
リアクトだけその状態や小道具が変更コンポーネントを更新するためです

が、Meteor.userId()はそれらのどちらもあります。 createComponentを使用してMeteor.userId()をReactプロパティにする必要があります。

import React from 'react'; 
import { Meteor } from 'meteor/meteor'; 
import { createContainer } from 'meteor/react-meteor-data'; 

class MyComponent extends React.Component { 
    render() { 
    return this.props.userId ? <BoxSignedIn /> : <BoxSignedOut />; 
    } 
} 

export default createContainer(() => { 
    return { 
    userId: Meteor.userId() 
    }; 
}, MyComponent); 
+0

ありがとう!私はこの間ずっと固まっていた – paul

関連する問題