Jay Phelps Profile picture
May 1 6 tweets 1 min read Read on X
I *really* don't like the extremely common pattern in React apps of propagating null/undefined values throughout all your components while data is still loading (or missing).

The reality is much worse than this, but a contrived example: Image
It's even worse when the codebase isn't extremely type safe and strict about that.
I'm not saying I would _never_ do this, I just see this done to an extent that makes me sad.
Eventually you end up with countless hooks and components with tons of props that are always just `X | null | undefined` and it becomes very hard to keep track of when nulls or undefineds are because data is loading, missing, or some other bug.
GraphQL makes this 10x worse because the default for schemas is to have fields be nullable, and even worse the default for *array elements* is nullable too! So you get schema like `items: [Item]` and whoops now the field might be null but also it might be an array of null items.
Don't get me started on data?.foo?.bar ?? null

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Jay Phelps

Jay Phelps Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(