動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
技術記事

Reactで違うコンポーネントをmapでレンダリングする方法

バイブス父さん
現役の業務SE
2022年10月1日1 min read

みなさんこんにちは!!ひろしです!!!!

ひっさびさのブログ更新!MacbookAirを購入したので、キーボードがすごく打ちやすくカタカタしたくてブログを書こうと思いました!!

とはいってもブログの議題がないと記事が書けないので、今回は日頃触っているReactから違ったコンポーネントをmapで一気にレンダリングする方法について書いていきいと思います!!

同じようなコンポーネントであれば、そのままmapで表示することができますが、例えばAコンポーネントとBコンポーネントをランダムに一つの配列に入れてmapするときってどうするんだろうか??と思いません??

答えはこんな感じにできれば別のコンポーネントを合わせてmapすることができます!

const HogeComponent = () => { (typescript)#0f591a276206
const HogeComponent = () => {
  const AComponents = useMemo((): React.ReactNode[] => {
    return ['a', 'b', 'c'].map(v => <p>{v}</p>);
  }, [])
 
  const BComponents = useMemo((): React.ReactNode[] => {
    return ['1', '2', '3'].map(v => <p>{v}</p>);
  }, [])
 
  const renderComponents = useMemo((): React.ReactNode[] => {
    return [...AComponents, ...BComponents];
  }, [AComponents, BComponents])
 
  return (
  <div>
    {renderComponents.map(child => {
      return (
      <div>
        {child}
      </div>)
    })}
  </div>
  )
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です

というか日頃こういうことをしたいケースが発生するのか?という話ですが、、

この記事のコードと手順は ぜんぶ動作検証済み。 安心して現場で試してくれ。
バイブス父さん

現役の業務SE。C# / SQL Server 保守の現場から、コードも人もキャリアも全部書く。 実体験ベース。

運営者について