JavaScriptに関するお知らせ

SINCE2019
>
【JS】ReactのJSXでtrueとかfalseが表示されない時には

【JS】ReactのJSXでtrueとかfalseが表示されない時には


こんにちは!trueとかfalseって日常だと全然通じないですよね。Mizutani(@sirycity)です。yesとnoの方がよっぽど通じる。

今日はそんなtrueとかfalseがReactで表示できない問題です。

結論

これでOK

const foo = () => {
  const T = true
  const F = false

  return (
    <div>
      トゥルーは{T + ''}
      フォールスは{F + ''}
    </div>
  )
}

JSXにtrueは表示できない

JSXにはtrueとかfalseを表示できません。もうちょい細かくいうと、JavaScriptのnumberやstringはHTMLの文字として評価されるけどbooleanはされないです。こんな感じ。

const foo = () => {
  const N = 1
  const S = 'あ'
  const B = true

  return (
    <div>
      数字は表示できるよ→ {N}
      文字も表示できるよ→ {S}
      真偽は表示できないよ→ {B}
    </div>
  )
}

こうするとこんな感じのHTMLになる。

<div>数字は表示できるよ→ 1 文字も表示できるよ→ あ 真偽は表示できないよ→</div>

そう、booleanは表示できない。

解決策

解決策はすごいシンプルで、stringにしちゃえばOKString() とか +'' とかで。後者ならこう。

const foo = () => {
  const T = true
  const F = false

  return (
    <div>
      トゥルーは{T + ''}
      フォールスは{F + ''}
    </div>
  )
}

これでHTMLがこうなってクリア。

<div>トゥルーはtrue フォールスはfalse</div>

さいごに

今日は短い記事でした。自分が初心者のころにちょっとつまずいた内容です。参考になれば嬉しいな。以上。



PREV
2021-10-25
【JS】findIndexとNullishCoalescingを同時に使うと危険!

NEXT
2021-11-02
【CSS】文章を両端揃えしたらword-break:break-allも設定しよう