Managing filtered lists in state often leads to bugs and extra renders. Learn why calculating values on the fly keeps your UI in sync and your code clean.

The golden rule is simple: if you can calculate it from existing state, don’t store it. When you store derived data in state, you are essentially adding a middleman that creates synchronization drift.
Teach why you should not store calculated values in state. Use filteredEpisodes example. Give rule: if you can calculate it from existing state, don’t store it.


Creato da alumni della Columbia University a San Francisco
"Instead of endless scrolling, I just hit play on BeFreed. It saves me so much time."
"I never knew where to start with nonfiction—BeFreed’s book lists turned into podcasts gave me a clear path."
"Perfect balance between learning and entertainment. Finished ‘Thinking, Fast and Slow’ on my commute this week."
"Crazy how much I learned while walking the dog. BeFreed = small habits → big gains."
"Reading used to feel like a chore. Now it’s just part of my lifestyle."
"Feels effortless compared to reading. I’ve finished 6 books this month already."
"BeFreed turned my guilty doomscrolling into something that feels productive and inspiring."
"BeFreed turned my commute into learning time. 20-min podcasts are perfect for finishing books I never had time for."
"BeFreed replaced my podcast queue. Imagine Spotify for books — that’s it. 🙌"
"It is great for me to learn something from the book without reading it."
"The themed book list podcasts help me connect ideas across authors—like a guided audio journey."
"Makes me feel smarter every time before going to work"
Creato da alumni della Columbia University a San Francisco

Lena: Hey Jackson! I was looking through some component code earlier and noticed something that felt like a total "wait, why am I doing this?" moment. I had a list of episodes in state, and then a second state just for the filtered version of that same list.
Jackson: Oh, the classic duplicated state trap! It’s easily the most common mistake in React. We think we’re being organized by giving the filtered list its own home, but we’re actually just creating a "synchronization drift."
Lena: Exactly! It’s like trying to keep two different clocks in sync manually. If one shifts, the whole UI starts showing stale data.
Jackson: Right, and it doubles your re-renders for no reason. The golden rule is simple: if you can calculate it from existing state, don’t store it. Let’s dive into how we can turn that filteredEpisodes mess into a clean, derived value.