Я хочу, чтобы первая из трех панелей расширения была открыта, но все же позволяла открывать только одну панель за раз.В настоящее время я могу либо открыть первую панель, либо сделать так, чтобы панели были открыты по одному, но не оба одновременно.Но это то, что мне нужно.
Мне также нужно визуализировать jsx с помощью цикла.Этот цикл, кажется, вызывает проблему, потому что он работает без цикла.
2-й и 3-й ящики работают так, как они должны здесь.
Я попытался передать пропы прямо, как вдокументы, но это не сработало.В настоящее время я пытаюсь передать их динамически, чтобы с каждой панелью проходили только правильные реквизиты с каждой итерацией цикла.Выглядит это так:
function setAttributes(i) {
return [
{ defaultExpanded: true },
{ expanded: expanded === `panel2` },
{ expanded: expanded === `panel3` }
]
}
return (
<div className={`${classes.root} accordion`}>
{Object.values(props.drawers).map((drawer, i) => {
return (
<ExpansionPanel
key={i}
//set attributes here
{...setAttributes(i)[i]}
onChange={handleChange(`panel${i + 1}`)}
className="expansion-panel"
>
<ExpansionPanelSummary
className="expansion-panel-inner"
expandIcon={<ExpandMoreIcon />}
aria-controls={`panel${i + 1}bh-content`}
id={`panel${i + 1}bh-header`}
>
<Typography className={`${classes.heading} panel-heading`}>
{' '}
{drawer.heading}
</Typography>
<Typography className={classes.secondaryHeading} />
</ExpansionPanelSummary>
<ExpansionPanelDetails>
<Typography>{drawer.text}</Typography>
</ExpansionPanelDetails>
</ExpansionPanel>
)
})}
</div>
)
Я пытался посмотреть, какие реквизиты прикреплены после рендера, но это не супер ясно;это не так просто, как поиск дополнительного класса.Мне неясно, добавляются ли соответствующие реквизиты на каждую панель.Я также попытался сделать первый объект внутри setAttributes
{ defaultExpanded: true, expanded: expanded === "panel1" },
, но это просто отключает расширение по умолчанию.
A demo показывает проблему.
Я хочу первыйпанель открыта при загрузке, затем только одна панель, в зависимости от того, по которой щелкают, должна быть открыта, и только эта.