Kembangkan dan runtuhkan semua nod dalam MUI DataGrid melalui pengaturcaraan ReactJS
P粉068486220
2023-08-13 10:39:36
<p>Bagaimana untuk membuat semua baris berkembang/diruntuhkan secara pengaturcaraan dalam <kod>DataGrid</kod> </p>
<p><strong>Apa yang telah saya cuba? </strong> Saya menggunakan sifat <code>defaultGroupingExpansionDepth</code>
<pre class="brush:php;toolbar:false;">export const EXPAND_ALL = -1;
eksport const COLLAPSE_ALL = 0;
...
const [expandedState, setExpandedState] = useState(COLLAPSE_ALL);
...
kembalikan <Timbunan>
<Jarak timbunan={2} direction="row" m={1}>
<Varian butang={"contained"} onClick={() => setExpandedState(EXPAND_ALL)}>Kembangkan semua</Button>
<Varian butang={"contained"} onClick={() => setExpandedState(COLLAPSE_ALL)}>Runtuhkan semua</Button>
</Timbunan>
<DataGridPro
treeData
...
apiRef={dataGridApi}
defaultGroupingExpansionDepth={expandedState}
... />
</Stack>;</pra>
<p>Masalahnya, butang ini hanya berfungsi apabila pokok itu <strong>tidak</strong> </p>
<p>Sebaik sahaja saya mengembangkan sebahagian grid pokok, butang tidak lagi berfungsi. Bagaimanakah saya boleh membuat butang ini berfungsi tanpa mengira keadaan semasa grid pokok yang dikembangkan/diruntuhkan? </p>
Nampaknya anda menggunakan sifat defaultGroupingExpansionDepth untuk mengawal keadaan pengembangan awal DataGrid, tetapi ia mungkin tidak mengemas kini secara dinamik semasa anda mengembangkan atau meruntuhkan baris. Untuk menjadikan butang berfungsi dalam keadaan kembangan/runtuh semasa, anda boleh menggunakan kaedah terkawaluntuk mengurus keadaan dikembangkan: