title: Why doesn't the div content update in dash / plotly?
body: <p>I tried using a div containing various elements with which the user can interact and then pass the entire div element as a <code>State</code> to a function to be able to read all of the various inputs.</p>
  
  <p>However, it seems that the div isn't getting updated. I wrote a small programme which shows the problem below:</p>
  
  <pre><code>import dash                                                                     
  import dash_html_components as html                                             
  from dash.dependencies import Input, Output, State                              
  import dash_core_components as dcc                                              
  
  
  app = dash.Dash(__name__)                                                       
  app.css.append_css({                                                            
      'external_url': ('https://stackpath.bootstrapcdn.com/'                      
                       'bootstrap/4.1.1/css/bootstrap.min.css')                   
      })                                                                          
  
  
  app.layout = html.Div(                                                          
      className='container-fluid',                                                
      children=[                                                                  
          html.Div(id='test', children=[                                          
              html.Button(id='btn', children='Press me'),                         
              dcc.Input(id='inp', value='asdf')                                   
          ]),                                                                     
          html.Div(id='out')]                                                     
  )                                                                               
  
  
  @app.callback(                                                                  
      Output('out', 'children'),                                                  
      [Input('btn', 'n_clicks')],                                                 
      [State('test', 'children')]                                                 
  )                                                                                  
  def update(n, div):                                                                
      print(div) # This div always contains the string 'asdf' even if I type something else in the Input field
  
  
  app.run_server(debug=True, port=8888)                                              
  </code></pre>
  
  <p>I know that in this simple case I could just have the <code>State</code> depend on the value property of the id='inp' however each of these is generated dynamically so I thought I'd create whatever I create in the div and then pass the div and parse it (which I have code for). The only problem is I can't get the div to update!</p>
  
  <p>EDIT:</p>
  
  <p>There seems to be confusion as to the issue. I'm trying to get the value of the <code>Input</code> box through the parent div and passing the children. However, that didn't work! I've added a comment in the code to explain this.</p>