【发布时间】:2021-03-04 18:05:33
【问题描述】:
我正在尝试将 Carousel 组件包装在映射对象数组周围作为组件的子级。目前我只能让映射创建映射对象的 1 个子对象。
轮播应该是这样的:
<Carousel>
<div>1</div>
<div>2</div>
<div>3</div>
</Carousel>
但在这个上不能正常工作
<Carousel>
<div>
<div>1</div>
<div>2</div>
<div>3</div>
</div>
</Carousel>
请查看我的轮播围绕映射项的 1 个子项的原始可重现代码:https://codesandbox.io/s/blissful-elion-993vy 请注意,您会看到 Carousel 工作正常,但是 Carousel 的许多属性根本不起作用,因为它被包裹在一个子对象上,例如动画和指示器属性。
我试过这样做:
<Carousel
autoPlay={false}
onClick={handleChangePage}
next={loopNext}
prev={loopPrev}
NextIcon={<ArrowForwardIosRoundedIcon fontSize='large'/>}
PrevIcon={<ArrowBackIosRoundedIcon fontSize='large'/>}
navButtonsProps={{
style: {
backgroundColor: 'transparent',
color:"#447CF0"
}
}}
indicators={true}
swipe={true}
animation="slide"
>
{data[0]?.slice((page - 1) * itemsPerPage, page * itemsPerPage)
.map((data, index) =>
{
return (
<Container key={index} maxWidth="lg" component="main">
<Grid container key={index}>
<Grid item key={index} xs={4} md={4}>
<Card>
<CardHeader
title={<Chip label={data.symbol} />}
subheader={data.adj_close}
/>
<CardContent >
<MiniGraphs
historicalPrice={historicalPrice.filter(i => i.symbol === data.symbol)}
dateRange={date}
/>
</CardContent>
</Card>
</Grid>
</Grid>
</Container>
);
})}
</Carousel>
但轮播不会重新产生预期的结果。当我设置每张幻灯片 3 个孩子的数量时,它只会显示每张幻灯片 1 个孩子。
我想我已经将项目数组分成 3 个项目的切片,然后将每个切片映射到 <Container> --> <Grid container> --> <Grid item/> --> ...
目前还停留在如何实现这一点上。
编辑:我修复了沙盒。
编辑: 所需的输出是使所有图形正确显示为数组中的子节点。正如您在下图中看到的,每张幻灯片只有一个孩子正在填充轮播(我想是因为我需要明确地映射到一组孩子?)。注意到轮播下方的指示器(灰色圆圈)了吗?他们需要出现,如果没有,那么它仍然是图表的一个大孩子。
【问题讨论】:
-
您的代码沙箱返回错误:
_SymbolData$2.slice is not a function -
还是这样吗?我一秒钟就收到了这个错误,但它对我有用吗?
-
是的,仍然显示错误
-
奇怪的是同一个链接对我来说工作正常。
-
请添加所需的输出。您要在每页上显示 3 个图表?
标签: javascript reactjs