0%

SolidJS: For コンポーネントを React のように記述するためのワンライナー

logo.svg

以下の For コンポーネントを、

1
2
3
4
5
6
7
<For each={cats()}>{(cat, i) =>
<li>
<a target="_blank" href={`https://www.youtube.com/watch?v=${cat.id}`}>
{i() + 1}: {cat.name}
</a>
</li>
}</For>

以下の React のように記述するためのワンライナー。

1
2
3
4
5
6
7
{cats.map((cat, i) =>
<li>
<a target="_blank" href={`https://www.youtube.com/watch?v=${cat.id}`}>
{i + 1}: {cat.name}
</a>
</li>
)}

環境

  • SolidJS 1.5.1

ソースコード

1
const _ = (array) => ({ map: (fn) => <For each={array()}>{fn}</For> })

以下のように使用する。

1
2
3
4
5
6
7
{_(cats).map((cat, i) =>
<li>
<a target="_blank" href={`https://www.youtube.com/watch?v=${cat.id}`}>
{i() + 1}: {cat.name}
</a>
</li>
)}

Solid Playground