title: Best way to pass data from a root to deeper child widget in Flutter
body: <p>I am new to flutter. My flutter widget tree is getting deeper and deeper, I want to know which is the best method to pass data from a root to a widget which is much deeper from it. I'm currently passing it as a constructor from widget to widget.
  My current implementation is given below</p>
  <pre><code>Level1(data: data)
    Level2(data: data)
      Level3(data: data)
         Level4(data: data)
  </code></pre>
  <p>suppose my data is retrieved from DB in level1 widget and it is used in level4 widget. As we see, my current implementation is considerably messy. How this is generally done? what is the best practice?</p>