-
Notifications
You must be signed in to change notification settings - Fork 165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
getTotalSize when using itemSize array. #60
Comments
Here is an example of what I am describing above const range = N => Array.from({length: N}, (_, k) => k + 1);
class MixedHeight extends React.Component<any, any> {
constructor(props: any) {
super(props);
this.state = {
items: range(1000).map(() => {
return Math.max(Math.ceil(Math.random() * 1000), 50);
}),
};
}
renderItem = ({style, index}: {style: ItemStyle; index: number}) => {
return (
<div className="Row" style={style} key={index}>
Row #{index}. Height: #{this.state.items[index]}
</div>
);
};
render() {
return (
<div className="Root">
<VirtualList
width="auto"
height={400}
itemCount={1000}
renderItem={this.renderItem}
itemSize={this.state.items}
className="VirtualList"
/>
</div>
);
}
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When I learned
itemSize
can be a getter or array — I was hoping the array approach would help with thegetTotalSize
function and reduce the total height of the container — instead of estimating it.In of our use cases the heights for each row are much different, resulting in janky scrolling and poor estimates for the total height.
The below example is just me trying to explain what I mean. The actual implementation might be different, for example, it might make sense to determine this in the
constructor
andupdateConfig
— as well as have some caching.@clauderic do you have any thoughts around this? I wouldn't mind passing a property to accomplish this either. Potentially we can do the same if
itemSizeGetter
is a function.Update
Looking at the code it seems that
itemSizeGetter
is always a function within the component:I am currently trying out adding a
preCalculateTotalHeight
bool prop in my fork.The text was updated successfully, but these errors were encountered: