рдореИрдВрдиреЗ рдПрд╕рдУ рд╕реЗ рдпрд╣ рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдХреГрдкрдпрд╛ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рдореИрдВ рдПрдХ рдФрд░ рд╕рд╡рд╛рд▓ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗ
https://m.youtube.com/watch?v=jLtr4tpFKQE&time_continue=15
рдореИрдВ рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдлреНрд▓реЗрдХреНрд╕ рдореЗрдВ рдХреИрд╕реЗ рд▓рдкреЗрдЯ рд╕рдХрддрд╛ рд╣реВрдВ?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдСрдЯреЛрд╕рд╛рдЗрдЬрд╝рд░ рдКрдВрдЪрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП window.innerHeight рдФрд░ window.innerWidth рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдЬрдм рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рдмрдврд╝рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдЙрддреНрддрд░рджрд╛рдпреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рддрдХ рдореИрдВ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛, рд╡реЗ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВред
рд▓рд┐рдВрдХ: https://stackoverflow.com/questions/56253318/react-virtualized-auto-sizer-does-not-work
рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдСрдЯреЛ sizer рдШрдЯрдХ _definitely_ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рджреЗрдЦреЗрдВ:
https://github.com/bvaughn/react-window#can -a-list-or-a-grid-fill-100-a-width-or-height-of-a-page
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЖрдкрдиреЗ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рд╕рд╣реА рдЬрдЧрд╣ рд╣реИ (рдпрд╣ рдорд╛рдирдХрд░ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдкреНрд░рд╢реНрди рдкрдврд╝реЗ рд╣реИрдВ: wink :)
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛ рдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк pls рдореБрдЭреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ?
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА FAQs рдкрдврд╝ рд▓рд┐рдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдКрдБрдЪрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рд╢реВрдиреНрдп рд╣реИ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдкреГрд╖реНрда рдкрд░ рдХреЛрдИ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ window.innerHeigth / Width рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ред рдореИрдВрдиреЗ рдПрд╕рдУ рдкрд░ рдЕрдкрдирд╛ рдХреЛрдб рдЪрд┐рдкрдХрд╛ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбреЙрдХреНрд╕ рдЬреНрдпрд╛рджрд╛ рдорджрдж рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рдореЗрд░реЗ рд╕рд╡рд╛рд▓ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдЧрдП рд╣реЛрдВрдЧреЗред Pls рдореБрдЭреЗ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдПрдХ рд╣реА рдЕрдВрдХ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрджрд▓рдирд╛:
<AutoSizer>
{({ height, width }) => {
console.log(height, width)
return(<List
className="List"
height={height}
itemCount={1000}
itemSize={35}
width={width}
>
{Row}
</List>)
}}
</AutoSizer>
рдЬрдм рдореИрдВ рд╕рдорд░реНрдкрд┐рдд рдкреИрдХреЗрдЬ рд╕реЗ AutoSizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ ( import AutoSizer from "react-virtualized-auto-sizer";
) рдореБрдЭреЗ рдХреЛрдИ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред
рдЬрдм рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ react-virtualized
('рд░рд┐рдПрдХреНрд╢рди-рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб' рд╕реЗ {AutoSizer} рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ) рдореБрдЭреЗ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИ: 0 0
рдФрд░ 0 1806
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЛ рдЙрдбрд╝рд╛ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ ( рдХреЛрдбреИрдВрдбрдмреЙрдХреНрд╕ рдЙрджрд╛рд╣рд░рдг рдЙрд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)
рдпрд╣рд╛рдВ рдПрдХ рд╣реА рдЕрдВрдХ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрджрд▓рдирд╛:
<AutoSizer> {({ height, width }) => { console.log(height, width) return(<List className="List" height={height} itemCount={1000} itemSize={35} width={width} > {Row} </List>) }} </AutoSizer>
рдЬрдм рдореИрдВ рд╕рдорд░реНрдкрд┐рдд рдкреИрдХреЗрдЬ рд╕реЗ AutoSizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ (
import AutoSizer from "react-virtualized-auto-sizer";
) рдореБрдЭреЗ рдХреЛрдИ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИредрдЬрдм рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ
react-virtualized
('рд░рд┐рдПрдХреНрд╢рди-рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб' рд╕реЗ {AutoSizer} рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ) рдореБрдЭреЗ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИ:0 0
рдФрд░0 1806
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЛ рдЙрдбрд╝рд╛ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ ( рдХреЛрдбреИрдВрдбрдмреЙрдХреНрд╕ рдЙрджрд╛рд╣рд░рдг рдЙрд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)
рдПрдХ рд╣реА рдореБрджреНрджрд╛! рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдкрд╛рдпрд╛ рд╣реИ?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди w / рд░рд┐рдПрдХреНрд╢рди-рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред
рдореИрдВ рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред
рдореИрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ <AutoSizer />
рд╕рдорд░реНрдкрд┐рдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рдкреИрдХреЗрдЬ рд╕реЗ react-window
рдЬрдм рддрдХ рдореИрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА ref
рдкрд░ <List />
ред рдпрд╣ рд░реЗрдл рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ react-virtualized
рд╕реЗ AutoSizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдЗрд╕рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рддрддреНрд╡ рдкрд░ рдХреЛрдИ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдЪреМрдбрд╝рд╛рдИ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдмрд╕ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рддрдХ рдореЗрд░реЗ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИ (рдЪрд╛рд╣реЗ рдлрд┐рдХреНрд╕реНрдб рдпрд╛ рдлреНрд▓реЗрдХреНрд╕ рдпрд╛ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ
рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред
export 'AutoSizer' was not found in 'react-virtualized-auto-sizer'
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдПрдХ рддрдп рдорд┐рд▓ рдЧрдпрд╛ред
@types/react-virtualized-auto-sizer
рдкреИрдХреЗрдЬ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ AutoSizer
рдШрдЯрдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ:
export default class extends React.Component<AutoSizerProps> {}
рдЖрдк рдЗрд╕реЗ AutoSizer
рдЬреИрд╕реЗ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
import AutoSizer from 'react-virtualized-auto-sizer';
рдореБрдЭреЗ рдКрдВрдЪрд╛рдИ 0 рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереА, рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
IMO рдпрд╣ 'рд╕реБрд╡рд┐рдзрд╛' рдкреВрд░реА рддрд░рд╣ рд╕реЗ AutoSizer рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдФрд░ рдмрдЪреНрдЪреЗ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ, рдкреНрд░рднрд╛рд╡ рд╕рдорд╛рди рд╣реИред
рдбреЙрдХреНрд╕ рд╕реЗ
AutoSizer expands to fill its parent but it will not stretch the parent. This is done to prevent problems with flexbox layouts. If AutoSizer is reporting a height (or width) of 0- then it's likely that the parent element (or one of its parents) has a height of 0. One easy way to test this is to add a style property (eg background-color: red;) to the parent to ensure that it is the correct size. (eg You may need to add height: 100% or flex: 1 to the parent.)
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдЙрд╕рдХреЗ рдЖрдХрд╛рд░ рддрдХ рдлреИрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗред
рдореИрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛
<AutoSizer />
рд╕рдорд░реНрдкрд┐рдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рдкреИрдХреЗрдЬ рд╕реЗreact-window
рдЬрдм рддрдХ рдореИрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАref
рдкрд░<List />
ред рдпрд╣ рд░реЗрдл рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗreact-virtualized
рд╕реЗ AutoSizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдореИрдВ рдорд╛рдирдХ <AutoSizer />
рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
import { AutoSizer } from 'react-virtualized'
рдореЗрд░реЗ рд▓рд┐рдП рднреА рдпрд╣реА рдореБрджреНрджрд╛ рд╣реИред AutoSizer рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдКрдВрдЪрд╛рдИ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╕рд╛рде virtualized рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ AutoSizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
<div style={{ display: 'flex' }}>
<!-- Other children... -->
<div style={{ flex: '1 1 auto' }}>
<AutoSizer>
{({ height, width }) => (
<Component
width={width}
height={height}
{...props}
/>
)}
</AutoSizer>
</div>
</div>
рдореИрдВ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╣реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдЬреВрдЭрддрд╛ рд░рд╣рд╛, рдФрд░ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж, рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред
рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдмрд╛рд╣рд░реА рдХрдВрдЯреЗрдирд░ рдХреА рдКрдВрдЪрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрд╣ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ https://codesandbox.io/s/crazy-zhukovsky-kteok?file=/src/app.js : 277-312
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореЗрд░реЗ рд▓рд┐рдП рднреА рдпрд╣реА рдореБрджреНрджрд╛ рд╣реИред AutoSizer рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдКрдВрдЪрд╛рдИ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╕рд╛рде virtualized рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ AutoSizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред