【html5】forプロパティについて

  • 2019年1月30日
  • 2019年1月30日
  • HTML

今回は、html5でテキストとコンテンツを隣接して表示したい時に使われるfor(予約語のほうではないです)のお話になります。

例えば、selectタグで項目を選択している時は、アプリを使用しているユーザーに今何を選択しているか認知させている必要があります。

〇〇年と表示したい時ですが、中で文字列として埋め込んで表示させることができます。しかし、選択した情報を値としてデータベース

などに送りたい時は、この状態で送信すると例:’2019年’のように選択した西暦全体が文字列としてみなされてしまうので、

データベース側としては都合が悪いです。

この現象の解決策の中には、forタグを使ってセレクトボックス外で‘年’を表示させる方法があります。

forタグは、主に<label>タグの開始タグと終了タグに挟まれた文書を、隣接したコンテンツに関連付けさせるオブジェクトです。

通常ならば下の例のように書いていけば、セレクトボックスと文字列が紐付けられた状態で表示されます。

</pre>
<select value={this.state.year || 1970} onChange={ e => this.setState({year: e.target.value}) } >

{ this.yearData.map( d => <option key={d.value} value={d.value}>{d.label}</option>)}</select>

<label htmlFor="select-01">年</label>
<pre>

このように、forを使えば簡単にコンテンツと文字列を関連付けられるのですが、reactだとこのforがアンノウンになってしまい

認識されないというエラーが起きてしまいました。下記がそのエラーになります。

Unknown property ‘for’ found, use ‘htmlFor’ instead

通常のhtmlでは何の問題もなく使用することができるのですが、reactなどのフレームワークの中では効いてくれないので、

単にreactの仕様なのかな・・・?と感じています。と思ったのですが、javascriptでは予約語のforを使用するので

これでは混同してしまうのでhtmlForをつかってくださいとのことでした。→ htmlFor versus for?

書いているうちにちゃんとした理由が見つかりました。どおりでjavascriptを用いたreactでは使えない訳ですね!

てな訳で、reactでforを使いたいよという方は、代わりにhtmlForを使ってください。

その他参考にさせていただいたサイト→Using the for attribute in JSX – linter unknown property “for”

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG