Отработка вашего последнего комментария. Если вы передали функцию, которая будет использоваться в качестве опоры в HeadingDropdown, вы можете использовать ее, чтобы передать обратно значение состояния Родителю.
Функция, определенная в Parent
class Parent extends React.Component{
state = {
headingDropdownvalues: {}
}
getHeadingDropdownState = (valueFromChild) => {
this.setState({
headingDropdownvalues: valueFromChild
})
}
render(){
<HeadingDropdown passupstate={this.getHeadingDropdownState}/>
}
}
Итак, теперь ваш родительский компонент настроен на использование значения состояния из HeadingDropdown.
Теперь нам нужно настроить HeadingDropdown для фактической передачи этого значения после нажатия.
В HeadingComponent нам просто нужно обновить ваш метод changeView, чтобы он вызывал опору, которую мы передали, после того, как состояние было установлено. Мы делаем это, используя второй аргумент this.setState()
, который является обратным вызовом.
changeView(id) {
return (
() => this.setState({
clicked: id
}, () => this.props.passupstate(this.state)) //right here you can pass in whatever you want
)
}
Также здесь есть песочница, чтобы вы могли увидеть, как она работает: https://codesandbox.io/s/jovial-thompson-ldg3n