Reactのfor文レンダリング

FlutterColumnウィジェットなどのように要素内でTypeScriptのfor文を使用する場合には以下のような方法がある。

即時関数

JSX内で直接for文は書くことはできないため、即時関数を使用する。

render() {
    return (
      <div>
        {
          (function () {
            const list = [];
            for (let i = 0; i < 10; i++) {
              list.push(<li>{i}</li>);
            }
            return <ul>{list}</ul>;
          }())
        }
      </div>
    );
  }

辞書型を使用する。

配列の中身を描画したいだけの場合は辞書型を使用することもできる。

render() {
  return(
    <div>
    {
       Array(10).fill(0).map((val, i) => {
         return (
           <div>
             {
                Array(10).fill(0).map((val2, j) => {
                  return(
                    <button>{i} {j}</button>
                  );
                })
              }
            </div>
          );
        })
    }  
    </div>
  );
}