一
二
三
import { For } from "@chakra-ui/react"
const Demo = () => {
return (
<For each={["One", "Two", "Three"]}>
{(item, index) => <div key={index}>{item}</div>}
</For>
)
}
用法
TheFor
组件用于以强类型方式渲染项目列表。它类似于 .map()
。
import { For } from "@chakra-ui/react"
<For each={[]} fallback={...} />
示例
对象
以下是使用 For
组件遍历对象的示例。
鸣人
力量影分身、螺旋丸
佐助
力量千鸟、写轮眼
小樱
力量治疗、怪力
import { Box, For, Stack, Text } from "@chakra-ui/react"
const Demo = () => {
return (
<Stack>
<For
each={[
{ name: "Naruto", powers: ["Shadow Clone", "Rasengan"] },
{ name: "Sasuke", powers: ["Chidori", "Sharingan"] },
{ name: "Sakura", powers: ["Healing", "Super Strength"] },
]}
>
{(item, index) => (
<Box borderWidth="1px" key={index} p="4">
<Text fontWeight="bold">{item.name}</Text>
<Text color="fg.muted">Powers: {item.powers.join(", ")}</Text>
</Box>
)}
</For>
</Stack>
)
}
备用
当数组为空或未定义时,使用 fallback
属性渲染一个备用组件。
没有可显示的项目
import { For, Stack, VStack } from "@chakra-ui/react"
import { DecorativeBox } from "compositions/lib/decorative-box"
import { LuBox } from "react-icons/lu"
const Demo = () => {
return (
<Stack gap="4">
<For
each={[]}
fallback={
<VStack textAlign="center" fontWeight="medium">
<LuBox />
No items to show
</VStack>
}
>
{(item, index) => (
<DecorativeBox h="10" key={index}>
{item}
</DecorativeBox>
)}
</For>
</Stack>
)
}
属性
属性 | 默认值 | 类型 |
---|---|---|
each | T[] | 只读 T[] | 未定义 要迭代的数组 | |
fallback | React.ReactNode 当数组为空时渲染的备用内容 |