2016-12-25 2 views
0

Ich habe ein Meteor + Applikation reagieren, wo ich eine Header-Klasse wie dieses:Meteor + Reagieren: Zeigen Sie verschiedene Artikel Navigation auf der Login-Zustand abhängig

import React, { Component } from 'react' 

import { NavLoggedIn } from './header/NavLoggedIn' 
import { NavLoggedOut } from './header/NavLoggedOut' 

export class Header extends Component { 
    render() { 
     return (
      <header className="main-header"> 
       <nav className="navbar navbar-static-top" role="navigation"> 
        <div className="navbar-custom-menu"> 
         <NavLoggedIn /> 
         <NavLoggedOut /> 
        </div> 
       </nav> 
      </header> 
     ) 
    } 
} 

ich ein Konten-System haben, das funktioniert schön, aber jetzt möchte ich das Aussehen der NavBar basierend davon ändern, ob der Benutzer angemeldet ist oder nicht.

Wie konnte ich das erreichen?

I.E.

Wenn der Benutzer Meteor angemeldet ist, zeigen Sie die Komponente <NavLoggedIn /> an. Andernfalls zeigen Sie die Komponente <NavLoggedOut /> an.

+0

Gibt es eine Stütze zu definieren, ob der Benutzer online ist oder nicht? – Codesingh

+0

Nein, ich weiß nicht, wie ich das umsetzen soll. –

+0

Es könnte eine Requisite kommen, die von einer anderen Komponente kommt, bitte zeigen Sie den vollständigen Code an. – Codesingh

Antwort

0

Sie müssen import { Meteor } from 'meteor/meteor' und fügen Sie folgendes zu Ihrer render() Funktion:

import React, { Component } from 'react' 
import { Meteor } from 'meteor/meteor 

import { NavLoggedIn } from './header/NavLoggedIn' 
import { NavLoggedOut } from './header/NavLoggedOut' 

export class Header extends Component { 
    render() { 
     let navigate; 
     // If Meteor.userID() is null then render <NavLoggedOut />, otherwise <NavLoggedIn /> 
     if(Meteor.userId()) 
      navigate=<NavLoggedIn />; 
     else 
      navigate=<NavLoggedOut /> 
     return (
      <header className="main-header"> 
       <nav className="navbar navbar-static-top" role="navigation"> 
        <div className="navbar-custom-menu"> 
         {navigate} 
        </div> 
       </nav> 
      </header> 
     ) 
    } 
} 
+0

Ich werde es jetzt testen –

+0

ok, frohe weihnachten :) – Codesingh

+0

Bitte antworten Sie, sobald Sie es richtig machen. – Codesingh

Verwandte Themen