> You don't need stable props from the bottom up. Component will always react to props change and will returns a new Tree.
This is strictly false, because of effects. The bottom of your tree consumes props and triggers events. The author has plenty of examples of this, and even calls out useEventEffect as being helpful.
> The only solution is to have everyone have discipline and respect the convention of React.
The article specifically goes out of its way to show that mistakes still happen and linters aren't capable of solving this alone.
> as long as you ensure that the props you're sending down is referentially stable, you're golden
This is literally the point. You can't. As the component, you're powerless to ensure this. And components that use your component can't even be sure, because referential stability doesn't only require your code to be correct, but every third party library as well.
This is strictly false, because of effects. The bottom of your tree consumes props and triggers events. The author has plenty of examples of this, and even calls out useEventEffect as being helpful.
> The only solution is to have everyone have discipline and respect the convention of React.
The article specifically goes out of its way to show that mistakes still happen and linters aren't capable of solving this alone.
> as long as you ensure that the props you're sending down is referentially stable, you're golden
This is literally the point. You can't. As the component, you're powerless to ensure this. And components that use your component can't even be sure, because referential stability doesn't only require your code to be correct, but every third party library as well.