After getting Redux setup and working with my React app. I ran into an interesting "problem" that I didn't see a lot of answers to for what would seem like a fairly basic process.
I had 2 reducers: one handling expenses, and one handling expense cards. Each of those reducers had an initial state that was essentially an empty array that would hold their respective objects as they are created.
My "problem" now was how do I associate an array of expenses with their respective expense card if they're in separate reducers AND states between reducers can't be shared.
Attempt #1: Reselect and the power of selectors
The Reselect library seems awesome. If I had more time with it and applied it to relevant use cases, I think I would be able to understand just how awesome it is, but I'll take other people's opinions on it for the time being. From the brief time I experimented with it, it seemed like it would help in other use cases, but for my problem, it only caused weird bugs to pop up.
Attempt #2 & #3: React-ORM and Normalizr
I figured if my problem is dealing with relational data, then maybe these 2 libraries would help. Long story short, it didn't, at least not right now. It only served to confuse me more. Always have to keep in mind that the more libraries and dependencies are added, the more difficult it is to keep track of things.
Attempt #4: Consolidating the reducers
In the end, I ended up consolidating the reducers. Since this isn't a large application anyways, I figured this would allow me to proceed forward without having to learn other libraries yet to deal with this particular use case. In my single reducer, if an expense is added, an expense object is added to the array of expenses in its respective expense card.
All of these attempts were done using Immutable also which I found to be very helpful, especially Immutable.Record. The next thing now is to try to write an API using Express and MongoDB so that we have a persistence layer for the app.