質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

1回答

543閲覧

Reactでformがレンダリングされない

onakahetta

総合スコア23

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2019/07/19 14:18

お世話になっております。
Reactで通常のhtmlのformのようなactionを指定したformを作りたいです。
以下のように書いたのですが、action先でデータが受け取れなかったので確認したところformがレンダリングされていませんでした。
何かReact特有の記述方法が必要なのでしょうか?ご教授いただきたいです。よろしくお願い致します。

React

1class Page extends React.Component { 2 3 componentDidMount() { 4 test.submit() 5} 6 7 render () { 8 const a = 'aaa' 9 const b = 'bbb' 10 const c = 'ccc' 11 return ( 12 <div> 13 <form action='/test' name="test" method="post" > 14 <input type="hidden" value={a} name="a" /> 15 <input type="hidden" value={b} name="b" /> 16 <input type="hidden" value={c} name="c" /> 17 </form> 18 </div> 19 ) 20 } 21} 22 23export default defaultPage({ Page, reducers: {} })

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

componentDidMount()で参照しようとしているtestという変数は定義されないかと思います。

Reactで生成したエレメントを参照したい場合、Refという仕組みがあります(公式)。

投稿2019/07/19 15:19

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onakahetta

2019/07/20 02:11

ご回答ありがとうございます! formのnameをrefに変えてそのrefをsubmitするという解釈で合っていますでしょうか。 デベロッパーツールで見るとそもそもhtmlの中にこのformが作られていないんですが、それもtestが定義できていないことが原因ですか?
maisumakun

2019/07/20 02:47

コンポーネント定義はいいとして、マウントは行っていますか?
onakahetta

2019/07/20 04:58

このページに入ったときに勝手に行われるものかと思っていたのですが違うのでしょうか…? 知識不足で申し訳ございません。
maisumakun

2019/07/20 07:19

どこかでReactDOM.render()する必要があります(コンポーネントを作っただけでは何も起こりません)。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問