title: How to make simple mobx reaction work in sub component
body: <p>I miss something in mobx observables and reactions.
  I prepared two examples, one of them works, the other does not, I don't understand why.</p>
  
  <p>Example 1 (does not work):</p>
  
  <pre><code>@observer class Alert1 extends Component {
    constructor(props) {
      super(props);
      this.r2 = reaction(
        () =&gt; this.props.v1,
        v =&gt; console.log("Alert1 reaction trigger",v)
      );
    }
    render() {
      return null;
    }
  }
  
  @observer class Main extends Component {
    @observable v1 = false;
    render() {
      return (
        &lt;div&gt;
          &lt;Alert1 v1={this.v1} /&gt;
          &lt;button onClick={e=&gt;this.v1=!this.v1}&gt;Switch&lt;/button&gt;
        &lt;/div&gt;
      );
    }
  }
  </code></pre>
  
  <p>In example 1 we just send observable variable in props and create reaction in Alert1 component, but it does not trigger.</p>
  
  <p>Example 2 (works): </p>
  
  <pre><code>@observer class Alert2 extends Component {
    constructor(props) {
      super(props);
      this.r2 = reaction(
        () =&gt; this.props.someObj.v1,
        v =&gt; console.log("Alert2 reaction trigger",v)
      );
    }
    render() {
      return null;
    }
  }
  
  @observer class Main extends Component {
    constructor(props) {
      this.someObj = observable({v1:observable(false)});
    }
    render() {
      return (
        &lt;div&gt;
          &lt;Alert2 someObj={this.someObj} /&gt;
          &lt;button onClick={e=&gt;this.someObj.v1=!this.someObj.v1}&gt;Switch&lt;/button&gt;
        &lt;/div&gt;
      );
    }
  }
  </code></pre>
  
  <p>That's almost the same as example 1, but we wrap v1 observable into the other observable. Alert2 reaction works.</p>
  
  <p>The same time if we move reactions from Alert1 and Alert2 components to the Main component's constructor, both reactions works.</p>
  
  <p>Here's jsfiddle example with both components, <a href="https://jsfiddle.net/kasheftin/zex0qjvf/1/" rel="nofollow">https://jsfiddle.net/kasheftin/zex0qjvf/1/</a></p>