mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
9a5ff7a619
Before this commit, in some specific situations, owl could skip updating the DOM, even though it should. Here is what could happen: - we have a parent component (A) and a child component (B) - B depends on some reactive props from A - we update some state that results in A being rendered, and B updated - before this render is applied to the dom, we update some state again, which causes A to be rendered again - however, this new render is such that the B props are now identical, so it will skip rendering B - it will then apply the result of the render to the DOM => only A is updated but B should also be updated! The problem comes from the fact that Owl committed the props to the component right after the rendering, to the new props were used in the props comparison method to decide if B should be updated. This is incorrect, we should always use the current props to decide what to do, and only commit them to the component after it has been patched.