Новое в React: в следующем коде я передаю данные между двумя компонентами через родительский компонент. Поток идет от Search к родительскому App, а затем к другому дочернему Sidebar. Я могу отправлять как из поиска в приложение, так и из приложения в боковую панель по отдельности, но по какой-то причине setState ведет себя не так, как ожидалось, делая ссылку для запуска обновления <Search updateMenu = {this.handleSearchResult} />, как вы можете видеть в комментариях к коду console.info ниже:
import React, { Component } from 'react';
import './App.css';
import Search from './Search';
import Sidebar from './Sidebar';
class App extends Component {
constructor() {
super()
this.state = {
menu: []
}
}
handleSearchResult = (array) => {
// always the correct value
console.info('in ', array);
this.setState( {menu: menuList})
// 1st call : empty
// 2nd call : previous value not showing on 1st call + new value as expected
// does not trigger <Sidebar list = {this.state.menu}/>
console.info('out', this.state.menu);
}
render() {
return (
<div className = "App">
// not refreshing
<Search updateMenu = {this.handleSearchResult} />
<Sidebar list = {this.state.menu}/>
</div>
);
}
}
export default App;



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


отличная ссылка! нашел решение там. Проблема действительно была в
setState, и обходной путь не назначаетpropsдочерним элементамstateи не отображает потомков сpropнапрямую вместоstate.