node.js - 遍历数组并一次显示一个 React 组件
问题描述
我有以下页面:
const GalleryPage: NextPage = () => {
const router = useRouter();
const id = router.query.id as string;
return (
<Gallery id={id} imageUrl="someRandomImageUrl.png" />
);
};
在画廊组件中,我有
...
return (
<div>
<Form
onSubmit={handleSubmit}
name="judging"
>
<input type="hidden" name="form-name" value="judging" />
<Container text style={{ marginTop: '2em' }} textAlign="center">
<Image src={galleryProps?.imageUrl} size="medium" verticalAlign="middle" />
<Table singleLine>
<Table.Header>
<TableHeader />
</Table.Header>
<Table.Body>
<TableRow
title="Composition"
name="composition"
item={composition}
setItem={setComposition}
/>
<TableRow
title="Creativity - Originality"
name="creativity"
item={creativity}
setItem={setCreativity}
/>
<TableRow
title="Neatness - Finishing details"
name="neatness"
item={neatness}
setItem={setNeatness}
/>
</Table.Body>
</Table>
</Container>
<Container text style={{ marginTop: '1em' }} textAlign="center">
<p>
<Button type="submit">Submit</Button>
</p>
</Container>
</Form>
</div>
);
自定义组件的位置TableRow
和位置。TableHeader
我似乎无法实现的事情
我有一组图像 URL:
const imageUrls = ['firstImageUrl.png', 'secondImageUrl.jpeg', 'thirdImageUrl.png']
对于 中的每个项目imageUrls
,我想显示该Gallery
组件。并且只有在Gallery
提交表单后,我才希望下一个实例显示以下图像。
即::
firstcase
一旦<Gallery id={id} imageUrl="firstImageUrl.png" />
提交表格,第二种情况
secondcase
:<Gallery id={id} imageUrl="secondImageUrl.jpeg" />
一旦提交表格,第三种情况......
解决方案
您可以创建一个名为 galleryIndex 的状态,该状态从 0 开始,然后向画廊传递一个名为的函数 prop onSumbit
,并在其中将状态 galleryIndex 增加 1,然后在画廊页面内将画廊组件上的 imageUrl 设置为来自索引 galleryIndex 处的数组 imageUrls
推荐阅读
- python - 有效地找到熊猫日期之间的重叠
- php - 获取自定义帖子而不是默认的 Wordpress 帖子
- python - 使图形/图形之间的跟踪颜色保持一致
- request - 使用 Postman 的授权令牌/Cookie 向 Instagram 发送请求
- node.js - 当我尝试在 Windows 命令提示符下运行“npm run test”时出错
- python - Pytorch - 如何沿轴索引具有不同大小的张量
- android - Jetpack compose:BottomSheet 状态更改回调
- swift - Swift 将约束扩展添加到具有关联类型的协议
- anylogic - 如何编写查询以在 AnyLogic 中获取不相等?
- python - 是什么让多武装老虎机问题与上下文相关,以及 TensorFlow 和 Stable Baseline 等框架如何实现这些