![](/img/trans.png)
[英]Material-UI - How to open Dialog imperatively/programmatically
[英]ReactJS: How do I open an Material-UI Accordion programmatically?
手风琴都有一个 id:
const CategoryDisplay: React.FC<Props> = (props) => {
...
return (
<>
<Accordion
id={`category-${accordion.id}`}/>
</>
);
};
export default CategoryDisplay;
我有一个 function 通过链接中的 hash 值找到一个带有 id 的特定 Accordion 并滚动到它:
useLayoutEffect(() => {
const anchor = window.location.hash.split("#")[1];
if (anchor) {
const anchorEl = document.getElementById(anchor);
if (anchorEl) {
anchorEl.scrollIntoView();
}
}
}, []);
现在我还想扩展那个特定的手风琴。 我如何 go 关于这个 Material-UI 手风琴? 我必须以某种方式在 anchorEl 上设置扩展。
手风琴expanded
道具。 将其设置为true
并且 Accordion 将展开:
const CategoryDisplay: React.FC<Props> = (props) => {
const [expand, setExpand] = useState(new Array(numberOfAccordions).fill(false))
...
return (
<>
<Accordion
id={`category-${accordion.id}`} expanded={expand[accordion.id]}/>
</>
);
};
export default CategoryDisplay;
useLayoutEffect((accordionId) => {
const anchor = window.location.hash.split("#")[1];
if (anchor) {
const anchorEl = document.getElementById(anchor);
if (anchorEl) {
let result = [...expand];
result[accordionId] = true;
setExpand(result);
anchorEl.scrollIntoView();
}
}
}, []);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.