vue-virtual-scroller icon indicating copy to clipboard operation
vue-virtual-scroller copied to clipboard

Functional sizeField for RecycleScroller's variable-size mode

Open ThEditor opened this issue 1 year ago • 3 comments

Clear and concise description of the problem

When using recycle-scroller's variable size mode, a "sizeField" can be defined. This sizeField, however, can only be a constant number and not a function that outs a number. I have a component where sizes vary with respective to a scale parameter and hence, I need the sizeField to be a function (synchronous) that returns a number instead. (So that I can return something like defaultSize * scale)

Suggested solution

Currently, in variable size mode

current = items[i][field] || minItemSize

This can be replaced by

current = ((typeof items[i][field] === 'function') ? items[i][field]() : items[i][field]) || minItemSize;

Alternative

No response

Additional context

No response

Validations

  • [X] Read the docs.
  • [X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.

ThEditor avatar Jan 01 '24 18:01 ThEditor

I can open a PR if you guys are willing to accept this change. (Also, I'm using Vue 2 in my project that requires this behavior)

ThEditor avatar Jan 01 '24 19:01 ThEditor

It would probably make more sense to accept a function for itemSize prop

Akryum avatar Jan 02 '24 08:01 Akryum

接受 prop 的函数可能更有意义itemSize

If this feature is really implemented, that would be great

This feature is indeed very practical

In addition, if "itemSize" can support CSS units other than px, then it should be more flexible.

srackhall avatar Mar 05 '24 00:03 srackhall