Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

332
Views
¿Cómo hacer un TreeView expandido por defecto?

Por defecto, @mui TreeView tiene todos sus nodos colapsados.

Quiero que tenga todos sus nodos expandidos por defecto, y no puedo encontrar cómo hacerlo.

Mis intentos fueron usar un método que llamé handleExpandAll pero no funciona, el navegador dice que se procesa demasiadas veces. Lo cual es raro porque sin la llamada aparentemente se renderiza 1 vez, pero con ella se renderiza una cantidad indefinida de veces.

Tal vez uno de ustedes podría ayudarme.

Por ahora mi código se ve así:

 import { useEffect } from "react"; import classes from "./TreeNavigation.module.css"; import TreeView from "@mui/lab/TreeView"; import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; import ChevronRightIcon from "@mui/icons-material/ChevronRight"; import CustomTreeItem from "../../ui/CustomTreeItem/CustomTreeItem.js"; import { apiStates } from "../Leases/useLeases.js"; import LoadingDiv from "../../ui/LoadingDiv/LoadingDiv.js"; function TreeNavigation(props) { const [expanded, setExpanded] = useState([]); const [selected, setSelected] = useState([]); const handleSelect = (event, nodeId) => { props.onItemSelected(nodeId); }; const handleToggle = (event, nodeIds) => { setExpanded(nodeIds); }; const handleExpandAll = (length) => { setExpanded((oldExpanded) => [...Array(length).keys()]); }; const data = props.data; const renderTree = (nodes) => ( <CustomTreeItem key={nodes.id} nodeId={nodes.id} label={nodes.name}> {Array.isArray(nodes.children) ? nodes.children.map((node) => renderTree(node)) : null} </CustomTreeItem> ); switch (data.state) { case apiStates.ERROR: return <p>ERROR: {data.error || "General error"}</p>; case apiStates.SUCCESS: const batimentsTreeViews = data.data.map((bat) => { var b = []; for (const key in bat) { b = { id: key, ...bat[key], }; } return renderTree(b); }); handleExpandAll(data.data.length); return ( <TreeView aria-label="controlled" defaultCollapseIcon={<ExpandMoreIcon />} defaultExpandIcon={<ChevronRightIcon />} expanded={expanded} selected={props.selectedId} onNodeToggle={handleToggle} onNodeSelect={handleSelect} sx={{ flexGrow: 1, width: "100%", maxWidth: "none", overflowY: "auto", }} > {batimentsTreeViews} </TreeView> ); default: return <LoadingDiv />; } } export default TreeNavigation;
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

¿Comprobaste de la siguiente manera?

 const [expanded, setExpanded] = useState([...Array(length).keys()]);

La vista de árbol predeterminada de Mui se expande todo de esta manera.

Editar demostración de material de ControlledTreeView (bifurcado)

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!