2017-04-09 107 views
0

我知道有一些關於此的帖子,但我正在使用與typescript和react-router v4在所有我想要的旁邊的反應是幫助使下面的代碼正常工作。 。react-TS如果您已經登錄,如何隱藏登錄組件

export default class Layout extends React.Component<{ appState: AppState }, {}> { 
    render() { 
    return (
     <Router children={appState}> 
     <Login appState={appState} /> 
     <div className="main-content"> 
      <Home /> 
     </div> 
     </Router> 
    ); 
    } 
} 

loginComponent:

export default class Login extends React.Component<{ appState: any }, {}> { 
    render() { 
    return (<LoginComponent />); 
    } 
} 

是它拋出 「A路由器可能只有一個子元素」 異常。如何設置的條件使家庭成分,如果用戶在登錄othwerwise組件記錄

編輯: 屆時AppState(mobx)

export class AppState { 
    @observable public username: any = null 
    @observable public password: any = null 
    @action setUsername(username:any){ 
     this.username=username; 
    } 
    @action setPassword(password:any){ 
     this.password=password; 
    } 

} 
+0

你在哪裏存儲「已經登錄」的價值? – QoP

+0

@QoP編輯後的信息。它存儲在mobx組件中 – TyForHelpDude

回答

0

我不可能瞭解哪一個是logined值。但是你的問題是一般的「條件」問題。

const CheckLogin = this.username==null ? "NotValid" : "Logined" 

應該幫助你瞭解你應該如何把這段代碼轉換系統

相關問題