무ν λ‘λ μ€λͺ
μμ μ§μΉ¨μ λ°λμ§λ§ μ¬μ ν μ½μμ λ€μ κ²½κ³ κ° νμλ©λλ€. Invalid list ref; please refer to InfiniteLoader documentation.
λ΄ μ½λ:
import InfiniteLoader from "react-window-infinite-loader";
const infiniteLoaderRef = useRef<InfiniteLoader>(null);
<InfiniteLoader
isItemLoaded={index => index < items.length}
itemCount={1000}
threshold={20}
loadMoreItems={loadMoreItems}
ref={infiniteLoaderRef}
>
...
</InfiniteLoader>
λ΄κ° μ¬κΈ°μ λ μλͺ»νκ³ μλ? κ°μ¬ ν΄μ!
InfiniteLoader
λ λ μνμμ FixedSizeList
κ΅¬μ± μμλ‘ μ°Έμ‘°λ₯Ό μ λ¬νκ³ μμ΅λκΉ?
μ, μ΄κ²μ΄ νμ¬ κ°μ§κ³ μλ κ²μ λλ€.
<InfiniteLoader
isItemLoaded={index => index < items.length}
itemCount={1000}
threshold={20}
loadMoreItems={loadMoreItems}
ref={infiniteLoaderRef}
>
{({ onItemsRendered, ref }) => (
<AutoSizer style={{ minHeight: "800px" }}>
{({ height, width }) => (
<VariableSizeGrid
columnWidth={_index => width / numberOfColumns}
columnCount={numberOfColumns}
rowCount={Math.ceil(items.length / numberOfColumns)}
rowHeight={_index => heightOfRow}
height={height}
width={width}
ref={ref}
>
{props => <GridItem {...props} />}
</VariableSizeGrid>
)}
</AutoSizer>
)}
</InfiniteLoader>
InfiniteLoader
μ AutoSizer
κ΅μ²΄νμ¬ AutoSizer
λ₯Ό μΈλΆ κ΅¬μ± μμλ‘ λ§λ€ μ μμ΅λκΉ?
λ΄κ° μ¬λ°λ₯΄κ² κΈ°μ΅νλ€λ©΄ κ·Έκ²μ λλ₯Ό μν΄ μΌνμ΅λλ€.
AutoSizerλ₯Ό μΈλΆ κ΅¬μ± μμλ‘ μ¬μ©νλ κ²½μ°μλ λμΌν λ¬Έμ κ° λ°μν©λλ€.
μλ νμΈμ @killpowa , μ κ° ββλ³Ό μ μλ μκ° μμ΅λκΉ?
μλ νμΈμ @chrisnevenλ , μ¬κΈ° μμ κ° μμ΅λλ€ - μ½λμλλ°μ€
미리 κ°μ¬λ립λλ€. :)
μλ νμΈμ @DevAKS-Yara,
κ·νμ μλ₯Ό μ΄ν΄λ³΄μκ³ ref
μμ InfiniteLoader
κ΅¬μ± μμλ₯Ό λͺ©λ‘ κ΅¬μ± μμ( VirtualTable
)λ‘ μ λ¬νμ§ μμμΌλ―λ‘ μ΄κ²μ΄ μ£Όλ μ΄μ μ
λλ€. invalid ref
λ©μμ§λ₯Ό λ°μ΅λλ€.
λλ λΉμ μ μλ₯Ό νΈμ§νκ³ μλνλ λ²μ μ ꡬννμ΅λλ€
μ¬κΈ°μ μ€μν μ μ λͺ©λ‘ κ΅¬μ± μμμ λν λ€λ₯Έ μ°Έμ‘°λ₯Ό μνκ³ InfiniteLoader
κ΅¬μ± μμλ μ¬μ©ν λ InfiniteLoader
μ°Έμ‘° λ° νμν κΈ°ν μ°Έμ‘°λ₯Ό μ€μ νλ μ½λ°± ν¨μλ₯Ό μμ±ν΄μΌ νλ€λ κ²μ
λλ€. . VirtualTable
κ΅¬μ± μμμ setRefs
ν¨μλ₯Ό μ°Έμ‘°νμμμ€.
μλ νμΈμ @DevAKS-Yara,
κ·νμ μλ₯Ό μ΄ν΄λ³΄μκ³
ref
μμInfiniteLoader
κ΅¬μ± μμλ₯Ό λͺ©λ‘ κ΅¬μ± μμ(VirtualTable
)λ‘ μ λ¬νμ§ μμμΌλ―λ‘ μ΄κ²μ΄ μ£Όλ μ΄μ μ λλ€.invalid ref
λ©μμ§λ₯Ό λ°μ΅λλ€.λλ λΉμ μ μλ₯Ό νΈμ§νκ³ μλνλ λ²μ μ ꡬννμ΅λλ€
μ¬κΈ°μ μ€μν μ μ λͺ©λ‘ κ΅¬μ± μμμ λν λ€λ₯Έ μ°Έμ‘°λ₯Ό μνκ³
InfiniteLoader
κ΅¬μ± μμλ μ¬μ©ν λInfiniteLoader
μ°Έμ‘° λ° νμν κΈ°ν μ°Έμ‘°λ₯Ό μ€μ νλ μ½λ°± ν¨μλ₯Ό μμ±ν΄μΌ νλ€λ κ²μ λλ€. .VirtualTable
κ΅¬μ± μμμsetRefs
ν¨μλ₯Ό μ°Έμ‘°νμμμ€.
μ€! InfiniteLoader
μμ VirtualTable
refλ₯Ό μ§μ μ λ¬νλ €κ³ νμ§λ§ μ λμ§ μμμ΅λλ€. μ λ¬λ refλ₯Ό μ§μ μ¬μ©νλ κ²κ³Ό μ½λ°± ν¨μλ₯Ό ν΅ν΄ μ€μ νλ κ²μ μ°¨μ΄μ μ 무μμ
λκΉ?
BTW, μ루μ μ£Όμ μ κ°μ¬ν©λλ€! ππΌ :)
BTW, μ루μ μ£Όμ μ κ°μ¬ν©λλ€! ππΌ :)
μ²λ§μμ!
μ€!
InfiniteLoader
μμVirtualTable
refλ₯Ό μ§μ μ λ¬νλ €κ³ νμ§λ§ μ λμ§ μμμ΅λλ€. μ λ¬λ refλ₯Ό μ§μ μ¬μ©νλ κ²κ³Ό μ½λ°± ν¨μλ₯Ό ν΅ν΄ μ€μ νλ κ²μ μ°¨μ΄μ μ 무μμ λκΉ?
refλ₯Ό μ§μ μ λ¬ν μλ μμ§λ§ μ΄ κ²½μ°μλ λΆλͺ
ν μ¬λ¬ μ°Έμ‘°κ° νμν©λλ€. "μ½λ°± μ°Έμ‘°"λ₯Ό μ¬μ©νμ¬ DOM λ
Έλμ μ¬λ¬ μ°Έμ‘°λ₯Ό ν λΉν μ μμ΅λλ€. κ°κΈμ μ΄λ©΄ useCallback
νν¬μ λ£μ΄μΌ ν©λλ€. μ΄λ κ² νλ©΄ μ½λ°± μ°Έμ‘°κ° λ€μ λ λλ§λλ λμ λ³κ²½λμ§ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
InfiniteLoader
μAutoSizer
κ΅μ²΄νμ¬AutoSizer
λ₯Ό μΈλΆ κ΅¬μ± μμλ‘ λ§λ€ μ μμ΅λκΉ?λ΄κ° μ¬λ°λ₯΄κ² κΈ°μ΅νλ€λ©΄ κ·Έκ²μ λλ₯Ό μν΄ μΌνμ΅λλ€.