2017-03-22 15 views
0

私はフォームコンポーネントを持っていますが、このフォームを記入すると(送信ボタンをクリックして)、フォームの代わりに、同じページにいくつかのコメントを付けて新しいコンポーネントをレンダリングしたいと思います「フォームを記入したことをお祝い」などのように。同じページに新しいコンポーネントをレンダリングする

これを達成する正しい方法がわかりません。ここで条件付きレンダリングをするのが正しいかどうかはわかりません。

また、フォームコンポーネントをレンダリングするページやアクションクリエイターでこれを行う必要がありますか?

ご協力いただきありがとうございます。

+2

ステートはこのユースケースのために設計されているので、条件付きレンダリングを使用すると問題はありません。 –

+0

これは、条件付きレンダリングでうまく動作します。ありがとう –

答えて

0

それはそれを行う方法のサンプルコードです:

export var LoginBox = React.createClass({ 

    getInitialState(){ 
    return{ 
     registered:false 
    } 
    }, 
    Register(){ 
    //submit registration form and change form to login form 
    ... 
    this.setState({registered : true}); 
    }, 
    login(){ 
    // submit login form here 
    }, 
    loginForm(){ 
     var{registered} = this.state; 
     if(registered){// your registeration form 
      return(
      <form onSubmit={this.Register}> 
       <div><input ref="number" type="tel"/></div> 
       <button type="submit">register</button> 
      </form> 
     ); 
     }else{ 
      return (// your login form 
      <form onSubmit={this.login}> 
       <div><input type="number" ref="activationCode"/></div> 
       <button type="submit">login</button> 
      </form> 
     ); 
     } 
     } 
    }, 
    render(){ 
    return (
     <div className="loginBox"> 
      {loginForm()} 
     </div> 
    ) 
    } 
}); 

それは、サンプルコードです。まず、デフォルトフォームの状態を初期化する必要があります。次に、フォームの送信時に、ビューをフォームを変更するために状態を変更します。

私はあなたがそれを理解するのに役立つことを願っています。

関連する問題