A SoundCloud client in React and Redux
There seems to be a big blind spot in these Real World React+Redux tutorials when it comes to forms.<p>For example, say I have a page with reviews on it.  So there&#x27;s a Component that handles editing a review.  Where does the state for all the form inputs go?  Does it go in the Redux store?  If it does, then every time the user types a letter you get an event, which goes walking backward through the component tree until it hits the review editor Controller, which generates an action, which dispatches to the store, which gets reduced causing a state change, which then percolates back up through the Controller&#x2F;Component tree to finally add that letter to the input.  That walking back and forth is bad enough on its own, let alone generating an entirely new state (because the state is immutable) for every single letter the user types.  It&#x27;s inefficient, and it adds noise into the action log.<p>The alternatives seem to be storing the state in the component in which the typing is happening, or in the parent Controller, and then only generating update actions against the store when some &quot;finished typing&quot; event occurs (i.e. onBlur or timeout).  Of course this seems to go against the idealistic implementation of Redux where all the state is stored in that one state object and it&#x27;s immutable.<p>My point being, I haven&#x27;t stumble across a &quot;real world&quot; tutorial that goes over this stuff.  I wouldn&#x27;t quibble about that normally, as I&#x27;m happy to play around and find the solution on my own, but this feels like such a common and important task (what website doesn&#x27;t have forms of some kind?) and the performance and maintenance implications of how this is implemented seem large.  So it would be nice if there was a &quot;We built this huge web app using React and Redux, this is how we ended up doing forms and it works well for us&quot; article.