reactjs - 在 material-ui Accordian 崩溃时从 DOM 中移除 AccordianDetails 组件
问题描述
我在我的第一个 React 项目中使用Accordion
了组件。material-ui
我注意到当Accordion
被折叠时,AccordionDetails
(作为 的后代Collapse
)不会从 DOM 中删除。它只能通过在内部更改高度来隐藏。我的代码是:
<Accordion>
<AccordionSummary
expandIcon={<ExpandMoreIcon />}
aria-controls="panel1a-content"
id="panel1a-header"
>
<Typography className={classes.heading}>Accordion 1</Typography>
</AccordionSummary>
<AccordionDetails>
<Typography>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex,
sit amet blandit leo lobortis eget.
</Typography>
</AccordionDetails>
</Accordion>
在 React Developer Tools 中,它看起来像这样:
Accordion
Accordion.ContextProvider
AccordionSummary
ButtonBase
Collapse
Transition
Context.Provider
AccordionDetails
....
如何折叠从 DOM 中删除并使用默认转换Accordion
?AccordionDetails
我在Collapse和Accordion API 文档中找不到任何选项来执行此操作。
当前安装版本:
- 反应:16.12.0
- 材料-ui:4.9.1
解决方案
用于折叠效果的组件或TransitionComponent
是Collapse
组件,默认情况下,子组件在达到“退出”状态后保持挂载。我们可以通过使用传递道具给它TransitionProps
。
以下代码将unmount
组件AccordionDetails
作为Collapse
何时Transition
达到退出状态或只是Accordion
折叠时的子组件。
<Accordion TransitionProps={{ unmountOnExit: true }}>
参考: http ://reactcommunity.org/react-transition-group/transition#Transition-prop-unmountOnExit
推荐阅读
- javascript - Facebook API Graph:弃用 publish_actions 后“上传视频”
- javascript - 根据在其他 Telerik 列表中选择的内容填充 Telerik 下拉列表
- api - poloniex API request BUY SELL CANCEL cause error = "Invalid API key/secret pair.";
- python - 在某个短语之前查找字符串
- python - pandas,python,excel,在 df 1 的列中搜索子字符串以将字符串写入 df2 的列
- reactjs - 多对多上的 Redux 选择器
- python - Python将滚动条添加到框架
- java - Java - 如何使 componentResized 事件只触发一次?
- xml - 在 xpath 中选择不同的元素
- c# - 为什么 C# 方法无法使用 VS 找到 Q# 操作的名称?