React-window: рдСрдЯреЛрд╕рд╛рдЗрдЬрд╝рд░ рд░рд┐рдПрдХреНрд╢рди-рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдордИ 2019  ┬╖  16рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: bvaughn/react-window

рдореИрдВрдиреЗ рдПрд╕рдУ рд╕реЗ рдпрд╣ рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдХреГрдкрдпрд╛ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдореИрдВ рдПрдХ рдФрд░ рд╕рд╡рд╛рд▓ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗ
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

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░реЗ рд▓рд┐рдП рднреА рдпрд╣реА рдореБрджреНрджрд╛ рд╣реИред AutoSizer рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдКрдВрдЪрд╛рдИ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╕рд╛рде virtualized рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ AutoSizer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рд╕рднреА 16 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдСрдЯреЛ 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 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

рдЗрд╕рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рддрддреНрд╡ рдкрд░ рдХреЛрдИ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдЪреМрдбрд╝рд╛рдИ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдмрд╕ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдЕрднреА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рддрдХ рдореЗрд░реЗ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИ (рдЪрд╛рд╣реЗ рдлрд┐рдХреНрд╕реНрдб рдпрд╛ рдлреНрд▓реЗрдХреНрд╕ рдпрд╛ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ

image

рдореИрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред

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

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

janhesters picture janhesters  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jsu93 picture jsu93  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ShivamJoker picture ShivamJoker  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

migueloller picture migueloller  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bitboxer picture bitboxer  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ