-
application state is passed down to subcomponents
On the surface this seems quite natural, but in practice things get strange quickly. The issue is that components get their data from two places (sometimes three): from
this.propsand fromthis.state(andthis.context). What often happens is that you want to store some information, such as some form input data or an AJAX call inthis.state, but meanwhile, the parent has passed in some new props inthis.propsthat invalidate that state, or at least make it inconsistent. So you have to merge the newthis.propswith thethis.stateincomponentWillReceiveProps().
Secondly, and this is related to the first, it's impossible for a parent component to get at the state of a child component. Also, a plausibly good idea - keep things isolated from each other. But again in practice, this forces weird design decitions: the parent passes an object to the child (in props) that is then modified by the child (form input, etc). This isn't a ma