Gre*_*uko 4 reactjs material-ui
我正在为折叠按钮和手风琴使用材质 UI。我希望人们能够单击“今天”按钮,然后打开第一个手风琴部分(上面写着星期六的部分)。今天按钮位于材质 UI 工具栏内。我也在为项目使用反应钩子。
我只是使用材料 UI 网站上显示的默认手风琴设置。每个手风琴都有自己的 ID(例如:panel1、panel2 等)。
我正在使用材料 ui 控制的手风琴中的示例布局
开放式手风琴示例:
封闭式手风琴示例:
你能给我的任何帮助都会很棒!谢谢。
使用expandedAccordion的属性和 state 会给你你想要的东西。
请注意,一旦您设置了该expanded属性,手风琴的默认行为将被覆盖,您将需要直接控制该行为。
这是我将如何解决它的代码沙箱示例。
如果有帮助,请告诉我!
编辑 - 代码示例:
import {
Accordion,
AccordionDetails,
AccordionSummary,
Button
} from "@material-ui/core";
import React, { useState } from "react";
import "./styles.css";
const week = [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
];
const d = new Date();
const currentDay = week[d.getDay()];
export default function App() {
const [openDay, setOpenDay] = useState("");
function handleAccordClick(day) {
if(openDay === day) setOpenDay("")
if(openDay !== day) setOpenDay(day)
}
function generateWeekAccordion(day) {
return (
<Accordion
expanded={day === openDay}
onClick={() => handleAccordClick(day)}
>
<AccordionSummary>{day}</AccordionSummary>
<AccordionDetails>{`${day} details...`}</AccordionDetails>
</Accordion>
);
}
return (
<div className="App">
<Button
style={{ marginBottom: "20px" }}
variant="outlined"
onClick={() => setOpenDay(currentDay)}
>
Open Today
</Button>
{week.map((day) => generateWeekAccordion(day))}
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2115 次 |
| 最近记录: |