React入門 練習問題 54:JSXの属性指定(省略記法)
ReactのJSXにおいて、コンポーネントにプロパティとして `disabled={true}` のように真偽値の `true` を渡したい場合、推奨される省略記法として正しいものはどれか。
- 属性名のみを記述する(例:disabled)
- 属性名に空文字列を渡す(例:disabled="")
- 属性名の末尾に感嘆符をつける(例:disabled!)
- 属性名と波括弧だけを記述する(例:disabled={})
- 属性名にハイフンを付加する(例:disabled-true)
正解と解説を見る
正解:属性名のみを記述する(例:disabled)
JSXにおいて、真偽値属性に「true」を渡す場合は、属性名だけを記述する省略記法が正解です。
【正解の理由】
ReactのJSXでは、属性名のみを記述して値を省略した場合、暗黙的に「true」が設定されたものとして扱われます。これはHTMLの「disabled」属性などの記法と見た目を統一し、簡潔に書けるようにするための仕様です。
【不正解の理由】
• 「属性名に空文字列を渡す(例:disabled=\"\")」という説明は誤り。これは真偽値のtrueではなく、文字列の空文字を渡すことになります。
• 「属性名の末尾にエクスクラメーションをつける(例:disabled!)」という説明は誤り。JSXにそのような構文ルールは存在しません。
• 「属性名と波括弧だけを記述する(例:disabled={})」という説明は誤り。波括弧の中には式を記述する必要があり、空にすると構文エラーになります。
• 「属性名にハイフンを付加する(例:disabled-true)」という説明は誤り。これは単なる別の属性名として認識されてしまいます。