a) If you are building a simple react app, and
b) if you are introducing lot of methods that get passed down the hierarchy chain, and
c) you are having to mutate the state of elements outside the scope of the current component,
then you will naturally end up choosing Redux. It is much simpler to publish events whenever you want to mutate objects and handle them as a reaction to the events. The challenge is the number of paradigms and patters both flux and redux introduces. It is painful at the moment (though in the next several months, I hope the boilerplate is highly reduced) to learn, but it is well worth it.