GithubHelp home page GithubHelp logo

Comments (6)

ahmedelgabri avatar ahmedelgabri commented on May 14, 2024 8

Managed to solve it by wrapping the <Sortablelist> itself with <AutoSizer/> and passing the width to the <VirtualScroll />

<AutoSizer disableHeight>
  {({ width }) => (
    <SortableList ref="SortableList" items={items} width={width} onSortEnd={this.onSortEnd} />
  )}
</AutoSizer>
class VirtualList extends Component {
  render() {
    const { items, width } = this.props;

    return (
          <VirtualScroll
            ref="VirtualScroll"
            estimatedRowSize={70}
            rowHeight={70}
            rowRenderer={({ index }) => {
              const { product } = items[index];
              return <SortableItem index={index} product={product} />;
            }}
            rowCount={items.length}
            width={width}
            height={500}
          />
    );
  }
}

from react-sortable-hoc.

clauderic avatar clauderic commented on May 14, 2024 1

Sounds like you've solved this :)

from react-sortable-hoc.

ahmedelgabri avatar ahmedelgabri commented on May 14, 2024 1

Simply the hierarchy for the solution looks like this and width is getting passed from top to bottom, I hope it makes sense.

AutoSizer                 
|__SortableList         
     |__ VirtualList

from react-sortable-hoc.

mitchellwarr avatar mitchellwarr commented on May 14, 2024 1

Thank you for this Issue thread, it fixed my issue. I suggest adding this to the docs somewhere as I only found this fix thanks to Google after reading through the docs and examples.

from react-sortable-hoc.

burtyish avatar burtyish commented on May 14, 2024

Hi @ahmedelgabri, it may be the late hour but I can't seem to grok your solution.
There's the Autosizer'd SortableList and then there's the VirtualScroll.
How is the end result composed?
I know this ticket is pretty stale, but would you (or anyone else for that matter) mind expanding on your answer?

Thanks!

from react-sortable-hoc.

burtyish avatar burtyish commented on May 14, 2024

Ah, thanks @ahmedelgabri, I really appreciate your quick answer. I was missing that you apparently also had:

const SortableList = SortableContainer(VirtualList, {withRef: true});

Unfortunately, after following the pattern you described, I still have two big problems:

1. this.refs.SortableList is undefined (I need that in my onSortEnd function)
2. I still can't get autoscroll to work 🤔

Update: I fixed the first problem by adding a ref to Autosizer: <AutoSizer ref="AutoSizer"> and then accessing this.refs.AutoSizer.refs.SortableList

from react-sortable-hoc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.