Closed3

Reactでliタグの頭文字を任意の数字や文字列にしたい

堀川登喜矢堀川登喜矢

liタグのlistStyleTypeに任意の文字列を指定するだけ

const data = [
  { number: 1, name: 'にゃん' }
  { number: 4, name: 'ゴン' }
  { number: 17, name: 'ジュゲム' }
]
const List = () => {
  return (
    <ul>
      {data.map(({ number, name }) => 
        <li style={{ listStyleType: `'(${number})'` }}>{name}</li>
      )}
    </ul>
  )
}

これで

(1)にゃん
(4)ゴン
(17)ジュゲム

みたいに表示できる。

堀川登喜矢堀川登喜矢

ulタグにpaddingLeftが指定されていて、その要素の幅までなら(1)の様な頭文字はキレイに表示される。また、nameの表示の頭はキレイに揃う。

ulのpaddingLeftを大きくしてあげれば、もっと長い文字列に対応できるが、ブラウザ毎のstyleなどがもしあると面倒なので、しっかり調べてからやらないとどこかで混乱しそう。

堀川登喜矢堀川登喜矢

シングルクオートで囲って上げないと、reactを介している分上手く文字列として渡せないので注意

このスクラップは2022/11/23にクローズされました