Skip to content

Issue with rerender / componentWillReceiveProps #115

@mergebandit

Description

@mergebandit

So I have a react-sortable-pane on a page with two items. On initialization, they are in order [0,1]. If I swap the order to [1,0], I fire off a dragStop event (orderChanged fires even if I haven't dropped, and that's not desirable). At dragStop I update the order in my app state. Everything is good.

Then I click a button which opens a right-sidebar. This causes my react-sortable-pane to reset to [0,1] order. Within componentWillReceiveProps, if I log this.props.children I see the children in the original order. If I log next.children, I see the children in the desired [1,0] order.

However, because componentWillReceiveProps is checking the arbitrary order prop, the setState({ panes: newPanes }) never gets called. If I manually call this.setSize() from within componentWillReceiveProps, the order of my panes are correct.

The problem I have is - I'm not sure how to fix this properly. Since the internals of pane order simply uses the index in an array, as opposed to something concrete like id, I can't just explicitly update the order.

Do I now have to manage the order myself and pass it in to the SortablePane component? That seems like duplicitous effort - I don't really care - I just want the order to be maintained across re-renders.

Do you have any other thoughts on this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions