reactでのformの送信について
react
1const formdata = { 2 aaa: "○○○", bbb: "○○○○○" 3};
と記述し、console.log(formdata);
を実行すると、
{aaa: '○○○', bbb: '○○○○○'} aaa: "○○○" bbb: "○○○○○"
と表示されますが、
reactでformを記述・実行し、console.log(formdata);
を実行すると、
{"aaa":"○○○","bbb":"○○○○○"}
と、複数のinput内容が合わさって表示されます。
上記の様に、formdataを連想配列として格納したいのですが、解決方法はあるのでしょうか。
react
1<form onSubmit={handleSubmit((formdata) => setData(JSON.stringify(formdata)))}> 2<input {...register("aaa")} type="text" name="aaa" /> 3<input {...register("bbb")} type="text" name="bbb" /> 4<input type="submit" /> 5</form>
formには、react-hook-formをインポートしています。
以下が、App.js の全文です。
react
1/* App.js */ 2 3import { useState } from "react"; 4import { useForm } from "react-hook-form"; 5 6export function App() { 7 const { register, setValue, handleSubmit } = useForm(); 8 const [formdata, setData] = useState(""); 9 10 11 return ( 12 <div style={{ 'padding': '20px' }}> 13 <form onSubmit={handleSubmit((formdata) => setData(JSON.stringify(formdata)))}> 14 <input {...register("aaa")} type="text" name="aaa" /> 15 <input {...register("bbb")} type="text" name="bbb" /> 16 <input type="submit" /> 17 </form> 18 19 <div>formdata=「{formdata}」</div> 20 <div>formdata.aaa=「{formdata.aaa}」</div> 21 <div>formdata.bbb=「{formdata.bbb}」</div> 22 23 {console.log(formdata)} 24 25 </div > 26 27 ); 28} 29 30export default App;
> 複数のinput内容が合わさって表示されます。
単に表示の違いにしか見えないのですが、何がどう違うと主張したいのでしょうか?
ご返答、有難うございます。
上記プログラムでは、
「formdata.aaa」には「○○○」が挿入されていて、
「formdata.bbb」には「○○○○○が挿入されています。
下記プログラムでは、
「formdata」には「{"aaa":"○○○","bbb":"○○○○○"}」が挿入されていて、
「formdata.aaa」には何も挿入されていません。
「formdata.bbb」にも何も挿入されていません。
データの受信側はどのようなコードになっていますか?
App.js の全文を追加させていただきました。
ブラウザで、「○○○」と「○○○○○」を入力すると、以下の様に表示されます。
formdata=「{"aaa":"○○○","bbb":"○○○○○"}」
formdata.aaa=「」
formdata.bbb=「」
回答1件
あなたの回答
tips
プレビュー