mirror of
https://github.com/status-im/reagent.git
synced 2025-01-12 21:05:20 +00:00
6cb6561ba6
Previous change (35ff5d33dd) started using ComponentDidMount to keep track of component mount order. This affected the order in which this was called, previously ComponentWillMount was called the first for parent components and then for children. ComponentDidMount was called first for children etc. To work around this, the mount order was reversed when updating components after ratom updates. Problem with this is, that when only some components are rerendered, they get new numbers, but their parents don't: (given components c, b, a) **0.8.1** c 1 > b 2 > a 3 a rerendered c 1 > b 2 > a 4 b rerendered c 1 > b 5 > a 6 **35ff5d33dd** c 3 > b 2 > a 1 a rerendered c 3 > b 2 > a 4 (BROKEN) b rerendered c 3 > b 6 > a 5 (BROKEN) Best way to fix this is to revert back to old way, where parents get the smaller number, this was re-rendering children doesn't change the order. To implement this the mount-order can be stored in component constructor, which seems to work similarly to ComponentWillMount. > The constructor for a React component is called before it is mounted. > UNSAFE_componentWillMount()... Generally, we recommend using the constructor() instead for initializing state.