前提・実現したいこと
現在Reactの勉強をしています。
React,Formikを使っています。
ラジオボタンが現状3つあり、そのうち2つは同じvalueを持たせる設計です。
「犬派」「犬派(理由あり)」を選択したときは、その下に新たに描画します
以下はイメージです。Formikを使えてはいません
https://codesandbox.io/s/priceless-kilby-l2bbb?file=/src/App.js
設計としてはラジオボタンの「犬派」「犬派(理由あり)」はdogとし、
その下に描画されるコンポーネントでdog,dog_riyuuをパラメータとして渡すようにします。
しかしその実装方針や方法がわかりません。
アドバイスいただけないでしょうか?
試したこと
ここに問題に対して試したことを記載してください。
・hiddenのフィールドを置いて、radioButtonのchangeイベントでそのフィールドに値を設定し、リクエストを投げる方針を思いつきましたが、実装方法がわかりません。Reactにinput type='hidden'はあるのか
追記
すみません、うまくやりたいことの意図が伝えられていなかったかもしれません。
基本的にラジオボタンはmustで、ラジオボタン郡はname="animal"的な感じです。そのanimalの値がcatとdogと区別したいです。
その上でラジオボタンの2つ目と3つ目を押したときにvalue値はdogとして送られるけど、表示領域が変わるようにしたいです
https://codesandbox.io/s/admiring-brattain-dzbkl?file=/src/App.js:0-949
react
1import React from "react"; 2 3function App() { 4 const [val, setVal] = React.useState("cat"); 5 6 const handleChange = (e) => setVal(e.target.value); 7 8 return ( 9 <> 10 {/* Field name='animal'的な*/} 11 <label> 12 <input 13 type="radio" 14 value="cat" 15 onChange={handleChange} 16 checked={val === "cat"} 17 /> 18 猫派 19 </label> 20 <label> 21 <input 22 type="radio" 23 value="dog" 24 onChange={handleChange} 25 checked={val === "dog"} 26 /> 27 犬派(理由なし) 28 </label> 29 <label> 30 <input 31 type="radio" 32 value="dog" // 送信されるvalue値としては2つ目もここも'dog'としたい 33 onChange={handleChange} 34 checked={val === "dog"} 35 /> 36 犬派(理由あり) 37 </label> 38 {/*//TODO 犬派(理由なし)を押したときに表示したい*/} 39 {<p>犬派(理由なし)</p>} 40 {/*//TODO 犬派(理由あり)を押したときに表示したい*/} 41 {<p>犬派(理由あり)です</p>} 42 </> 43 ); 44} 45 46export default App; 47 48
回答1件
あなたの回答
tips
プレビュー