2017-02-24 57 views
0

我想實現多步登錄,類似於懈怠(它首先要求的域名,然後電子郵件,以及後來的密碼)的反應,react-當地人。如何實現多步登錄中發生反應或反應本地

我想知道什麼是做到這一點的最佳做法?

我應該使用像ReactNavigation https://github.com/react-community/react-navigation路由器/導航解決方案?

+0

你爲什麼不鏈中的國家責任,以顯示你想要的領域?每次用戶點擊「下一個」,狀態就會進一步移動。這樣你就不會依賴用戶可以欺騙的路線。 – MVCDS

回答

0

這就是做了,肯定的一種方式。我會做的方式是一種單組分:

class LoginComponent extends React.Component { 
    constructor(props) { 
     super(props); 

     this.state = { stage: 0 }; 
    } 

    onDomainSubmit(data) { 
     this.props.getDomain(data.domain).then((domain) => { 
      this.setState({ domain, stage: 1 }); 
     }); 
    } 

    render() { 
     const { stage, domain } = this.state; 

     if (stage === 0) { 
      return <GetDomainForm onSubmit={ this.onDomainSubmit }... />; 
     } else if (stage === 1) { 
      return <LoginToDomainForm domain={ domain }... />; 
     } 
    } 
} 

getDomain是對已經通過react-reduxconnect注入到組件中的作用創造者 - 雖然這是沒有必要的。

有頭痛的這種方式,你需要的一切都包含在一個組件內。

+0

這有一個問題,即每個階段你都必須改變if。 – MVCDS

+0

@MVCDS不知道你的意思... –

+0

我已經回答了你的回答,我認爲這是無效的,因爲你把開發者鎖定在if/else和[這不是個好主意](http: //cirillocompany.de/pages/anti-if-campaign) – MVCDS