React-Redux: How to Confuse an Object-Oriented Programmer

Hunter Kolasa
3 min readApr 13, 2021

Having just completed a vanilla JavaScript/Rails API web application, I was confident that moving into React and Redux would be a fairly painless transition. A naïve concept, I know. The event-driven, simple nature of base JavaScript programming absolutely lulled me into a false sense of security in my understanding of JS. Of course, this sentiment was quickly dispelled not 6 hours into my first session using React. I think the hardest immediate concept was the importing/exporting and parent/child pairing that serves as the foundation of React. While similar ideas exist within Ruby on Rails, the execution of the idea feels vastly different between the two. With that being said, I managed to grind through the basics with only a minor, constant headache buzzing behind my eyes as a grappled with a sense of inadequacy in my understanding of supposedly beginner topics. With time and consistency, I began to understand the implicit actions happening behind the scenes and regained some confidence in my abilities with each passing lab. But then, disaster; I encountered Redux.

In hindsight, Redux really is not a difficult concept. It is, at its base a method of globally storing important data in a store and managing/updating this global state via dispatching actions to be carried out by a reducer. However, this is not immediately apparent. Moving into Redux after only barely surviving React was as close to an “out of the frying pan” situation as I have ever encountered. My seemingly sufficient understanding of React was obliterated by completely foreign concepts including but not limited to mapStateToProps, mapDispatchToProps and { connect } with countless additions ranging across massive libraries like ‘react-redux’ and ‘redux-actions’. To be completely honest, the majority of the Redux portion of this final module had me scrambling for any resources I could find. I suppose that was a good thing. As I moved onto my final project, I didn’t necessarily feel confident in my knowledge of Redux. Instead, I felt that I had enough video tutorials, redux docs and just general stress-management links bookmarked in my browser to get me through the final push to graduation.

As I continue to work on the final touches on my project, I can say that Redux/React has finally started to really click. I can almost see the threads connecting different components with state values pulled from the global store and mapped to props for ease of access. Furthermore, I can map dispatched actions to props efficiently and with at least modest understanding of the implications of the code.

React and Redux absolutely represents a massive codebase with nearly limitless potential. This was daunting when I first started learning the language and, honestly, is still daunting today. But, I can at least say that I understand the basics and can demonstrate this knowledge in a full stack web application. This basic comprehension will serve as an excellent base for expansion and has once again helped to instill confidence in my work ethic and determination to understand complex topics. I look forward to delving deeper into the capabilities of React-Redux and will absolutely implement it into future personal projects.

--

--

Hunter Kolasa

⁍ Full-Stack Software Developer ⁍ Biology/Environmental Conservationist ⁍ Avid Computer Nerd⁍