1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【TypeScript】ReactのElementを配列形式でjoinのようなことをしたい

Last updated at Posted at 2023-01-04

概要

JavaScriptではjoinメソッドで、配列の値をseparatorで結合して結果を取得することができます。ただ、joinメソッドはWhat is the join() method of an array in TypeScript?の記事にある通り、文字列型で返す用の関数になります。
では、ReactのElement要素の配列をjoinのような形式で結合したい場合、どうすれば良いのかというのを今回メモ書きします。

対応方針

やりようは幾つかあると思いますが、granmoe/ React Join Childrenの記事にある通り、reduceとsliceを使うやり方が、すっきり書けそうな感じはします。
reduceでseparatorの要素を追加していき、slice(0, -1)で最後に追加したseparator要素を削除する形になります。

実装サンプル

上記の記事で書かれていた実装ほぼそのままですが、サンプルをのせておきます。

export const SampleComponent: FC<Props> = ({ sampleList }) => (
  <div>
    {sampleList
      .map((sample) => {
        return <div>{sample.value}</div>
      })
      .reduce<ReactNode[]>((prev, curr) => {
        return [...prev, curr, <div>separator</div>]
      }, [])
      .slice(0, -1)}
  </div>
)
1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?