The passing stuff down when it isn't needed also comes up with JSX / React.
The basic options for solving it are either:
- pass it down manual - use Context, essentially thread local variables but React
both have tradeoffs and it really depends on what you're building your codebase.