Hacker News new | ask | show | jobs
by danabramov 2792 days ago
This has been suggested in the RFC discussion (https://github.com/reactjs/rfcs/pull/65).

We intentionally didn't do it for several reasons:

* It adds extra object allocations on every render which adds up when your project grows

* It's harder to express in a type system (e.g. Flow or TypeScript)

You can use the low-level Consumer API to read multiple contexts but in this particular shortcut we're not going to support it.

2 comments

The other angle to solving this problem would be adding lifecycle methods to React.Context (instead of using render props), which could eliminate the need for multiple contexts. Making Consumer contexts more efficient & composable.
We've thought about a spectrum of solutions and plan to present more proposals soon.
> It's harder to express in a type system (e.g. Flow or TypeScript)

I don't know about flow, but TypeScript is pretty flexible there. With mapped types you should be express anything you need.