<For>
Edit this pageThe <For>
component is used to render a list of items. It is similar to the .map()
function in JavaScript.
import { For } from "solid-js"import type { JSX } from "solid-js"
function For<T, U extends JSX.Element>(props: { each: readonly T[] fallback?: JSX.Element children: (item: T, index: () => number) => U}): () => U[]
A referentially keyed loop with efficient updating of only changed items. The callback takes the current item as the first argument:
<For each={state.list} fallback={<div>Loading...</div>}> {(item) => <div>{item}</div>}</For>
The each
prop can also be a function that returns a list. This is useful for creating a loop that depends on a state value:
<For each={stateSignal()}>{(item) => <div>{item}</div>}</For>
The optional second argument is an index signal:
<For each={state.list} fallback={<div>Loading...</div>}> {(item, index) => ( <div> #{index()} {item} </div> )}</For>
Props
Name | Type | Description |
---|---|---|
each | readonly T[] | The list of items to render. |
fallback | JSX.Element | A fallback element to render while the list is loading. |
children | (item: T, index: () => number) => U | A callback that returns a JSX element for each item in the list. |