2016-06-21 3 views
0

私はコンポーネントthasとページを持っているが、2つの入力テキストを持つフォームです:メールmeteor jsと反応するjsを使用して、異なるページの2つのフォーム(コンポーネント)間でデータを渡す方法は?

<form onSubmit={this.handleSubmit} action="register"> 
    <input 
     type="text" 
     placeholder="Name" 
     value={this.state.name} 
     onChange={this.handlNameChange} 
    /> 
    <input 
     type="text" 
     placeholder="Email" 
     value={this.state.email} 
     onChange={this.handleEmailChange} 
    /> 
    <button className="btn btn-success btn-block">Cadastre-se</button> 
</form> 

私はと呼ばれる別のページにこれらの二つの入力からのデータを渡したいです独自のコンポーネントフォームを持つ(フォームのアクションです)登録します。私は同様の構造形式を持っていますが、より多くの入力があります。

ルータは、次のようになります。

<Router history={browserHistory}> 
    <Route path="/" component={MainLayout}> 
     <IndexRoute component={Home} /> 
     <Route path="about" component={About} /> 
    </Route> 
    <Route path="/register" component={Register} /> 
    <Route path="*" component={NotFound} /> 
</Router> 

がどのように私は別のページに別のフォーム/コンポーネントからデータを渡すことができますか?

他のページのコンポーネント(登録)のデータにアクセスするにはどうすればよいですか?

ありがとうございます。

答えて

0

私はu2622:persistent-sessionパッケージを使用して、ページ2のフォームにページ1フォームからのデータを渡すことができました。

フォームページ1:

handleSubmit: function(e){ 
    Session.setPersistent({name: this.state.name, email: this.state.email}); 
} 

フォームページ2:

componentDidMount() { 
    this.setState({ 
    name: Session.get("name"), 
    email: Session.get("email") 
    }); 
} 
0

いくつかのオプションがありますが、おそらく最も単純なSessionを使用しています。

handleSubmit() { 
    Session.set("name", this.state.name); 
    Session.set("email", this.state.email); 
} 

そして、あなたのRegisterコンポーネントで:

componentDidMount() { 
    this.setState({ 
    name: Session.get("name"), 
    email: Session.get("email") 
    }); 
} 

http://docs.meteor.com/api/session.html

+0

は、セッションがフォームの送信後に失われない(ページのリダイレクトレジスタへの)? – Bagata

+0

いいえ、セッションは失われません。 – aedm

+0

それは変です。あなたのソリューションをテストしましたが、うまくいかなかった。 u2622:永続セッションパッケージは魅力的に機能しました。助けてくれてありがとう。 – Bagata

関連する問題