2017-12-04 1 views
-3

このアプリケーションで新しい動物オブジェクトを追加できますが、console.logを使用してハンドル送信機能の出力を確認すると、 "タイプ"。反応アプリケーション。 Submitボタンは、実際に入力された値ではなく、「タイプ」を返すだけです

handleSubmit(e) { 
    console.log(this.refs.type.value) 
    e.preventDefault() 
} 

render() { 
let typeOptions = this.props.types.map(type => { 
    return (<option key={type} value='type'>{type}</option>) 
}) 
return (
    <div> 
    <h3>Add an Animal</h3> 
    <form onSubmit={this.handleSubmit.bind(this)}> 
     <div> 
      <label>Species</label><br /> 
      <input type='text' ref='species' /> 
     </div> 
     <div> 
      <label>Type</label><br /> 
      <select ref="type" > 
       {typeOptions} 
      </select> 
     </div> 
     <input type='submit' value='submit' /> 
    </form> 
</div> 
+0

すべてのオプション値を 'return()とタイプするように設定すると、マップの値にする必要があります。 – cdaiga

+0

**未記入/非再編集/今後他には役に立たないとして投票を閉じる**。 'value = 'type''は値を文字列' type'に設定します。 *使用する*タイプではありません。実際の型が必要な場合は、 'key =や他の場所で行ったように' value = {type}を使います。 –

答えて

1
を提出いただきました!の所望の出力を得るためにここに置き換えるために何=「型」> {形} 値ではなく、イムわからない:アイブ氏は、動物の種類を返す私のマップ方法にあるようにバグを絞り込みます
return (<option key={type} value='type'>{type}</option>) 
       ^^ 1  ^^ 2   ^^ 3 
  1. このkey属性は何ですか? It does not exist in HTML。それを取り除く
  2. ここを見てください。値はハードコードされた文字列'type'に設定されています。それをしないでください。変数を使用します。
  3. ここでは変数を使用しました。 value属性にも同じことをします。
+0

'key'はリアクションのものであり、要素のリストをレンダリングするときに存在するはずです。 (値が 'type'であるべきかどうかは、' type'がリスト内で一意であるかどうかによって決まりますが、それはおそらくそうです)。 –

関連する問題