2017-04-04 9 views
0

私はレシピアプリケーションを構築しています。現在、レシピを追加するときにポップアップボックスが表示されます。このポップアップでは、レシピを追加することを確認したら入力を保存したいと思っています。私はバリューイベントのターゲットメソッドを調べましたが、このポップアップボックスの状態は上位のコンポーネント(メインのアプリケーションコンポーネント)を介してアクセスされているため、動作させるのが難しいと思います。別のコンポーネントの状態を介して入力値に反応します

GitHubのリンク:https://github.com/jeffm64/recipe-box2/tree/master/src/components

これは、私は現在、試してみて、それを動作させるために持っていますが、これはもはや来るポップアップボックスにつながるものです。これはhandleChangeと一緒にメインのアプリコンポーネント状態です:

getInitialState: function() { 
     return { 
      recipes: [], 
      addRecipeVisibility: false, 
      editRecipeVisibility: false, 
      value: "" 
     }; 
}, 

handleChange: function(event) { 
     this.setState({value: event.target.value}); 
}, 

これはポップアップボックスの入力JSXです:

<input type="text" value={this.state.value} onChange={this.props.handleChange} /> 
+0

質問を更新して、コンポーネント間の相互作用を示すコードを含めることはできますか? – elevine

+0

そうですね。私はちょうど私がGitHubへの私の最近のプッシュでenterを押さなかったことを実際に気づいたので、私は間違いなく混乱を見ることができます。 – J64

答えて

0

私は私が正しくあなたの質問を得たかどうかわからないんだけど、私は意志あなたに答えを与えてください。

現在のコンポーネントの状態を入力に渡そうとしています。私が見る限り、あなたは国家を定義していません。コンストラクタを使用し、デフォルトの状態を作成します。

これで、this.state.valueを入力に渡すことができます。

また、入力の変更が親コンポーネントによって処理され、そのコンポーネントの状態に格納されている場合は、その値を子コンポーネントの小道具として渡す必要があります。この場合、コンストラクタは必要ありません。

+0

値の状態は親コンポーネント内にあります。私はonChangeで小道具を使ってやってみましたが、結果を得ることができませんでした。それは私が価値のために持っている "this.state.value"が同様に小道具ではないかもしれないが、私はピースと一緒にどこに行かないかは確かではなかったかもしれない。 – J64

+0

値が親の状態にある場合は、それを小道具として渡し、小道具を入力値に割り当てる必要があります。 – Dlyrious

+0

これを入手しました。助けてくれてありがとう! – J64

関連する問題