I am working on the interface with react. As soon as a button in the 'Buttons' area is clicked, the expression in the 'filter text input' must be used to query a REST interface which returns a list of items as JSON. This data must be passed to the lower left panel to update a tree view. The 'filter text input'+'Buttons' is a controlled input.
+-------------------------------------+
| +-------------------------+-------+ |
| | filter text input       |Buttons| |
| +-------------------------+-------+ |
+----------+--------------------------+
| + item1  | +---------------+        |
| |  +-... | | text input    |        |
| + item2  | +---------------+        |
| |  +-... | +---------------+        |
| + item3  | | text input    |        |
| |  +-... | +---------------+        |
| + item4  |                          |
| |  +-... | ...                      |
+----------|--------------------------+
The canonical approach according to all the tutorials and documentation is to shift the state up to the common parent. However, this is a pretty bad idea because with every single key stroke the whole view will be updated entirely, including the tree in the left panel. Is there a generally accepted way (and good practice) to exchange data between components that belong to the same parent without shifting the state upwards or is there any other approach?
 
     
    