Files
react-test/docs/data/material/components/no-ssr/FrameDeferring.tsx

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

56 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-12-12 14:26:25 +09:00
import * as React from 'react';
import Box from '@mui/material/Box';
import NoSsr from '@mui/material/NoSsr';
function LargeTree(): any {
return Array.from(new Array(5000)).map((_, index) => <span key={index}>.</span>);
}
export default function FrameDeferring() {
const [state, setState] = React.useState({
open: false,
defer: false,
});
return (
<div>
<button
type="button"
onClick={() =>
setState({
open: !state.open,
defer: false,
})
}
>
{'Render NoSsr defer="false"'}
</button>
<br />
<button
type="button"
onClick={() =>
setState({
open: !state.open,
defer: true,
})
}
>
{'Render NoSsr defer="true"'}
</button>
<br />
<br />
<Box sx={{ width: 300, display: 'flex', flexWrap: 'wrap' }}>
{state.open ? (
<React.Fragment>
<div>Outside NoSsr</div>
<NoSsr defer={state.defer}>
.....Inside NoSsr
<LargeTree />
</NoSsr>
</React.Fragment>
) : null}
</Box>
</div>
);
}