Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

contextType is a much needed shortcut but I wish instead of this:

  static contextType = SomeContext
they did something like:

  static contextMap = {
    form: FormContext,
    app: AppContext,
  }
as it seems limiting to only allow one context.

In the example above, the context values would be available in this.form and this.app



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.


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.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: