скажем, у нас есть 3 компонента реакции, первый будет родителем, второй будет его дочерним элементом, а третий будет дочерним элементом второго компонента. поэтому я хочу передать реквизиты из третьего обратно в первый, чтобы использовать его в функции. пример кода:
class leveOne extends React.Component{
constructor(props){
super(props);
this.state = {
blabla: bla.
}
}
consoleLogChildren = () => {
console.log(//here lets console.log the childrens props)
}
render(){
return(
<LevelTwo propsFromLevelThree={props}/>
)
}
}
class leveTwo extends React.Component{
render(){
return(
<LevelThree propsFromLevelThree={props}/>
)
}
}
class leveThree extends React.Component{
render(){
return(
<h1 props={props to pass back to LevelOne}>LEVEL3</h1>
)
}
}
надеюсь, мой вопрос ясен /: видел много информации об этом, но мне ничего не было ясно, спасибо, ребята
возможно, вы хотите это: reactjs.org/docs/context.html возможно это: reactjs.org/docs/forwarding-refs.html
лучшим способом было бы использовать глобальное управление состоянием, взглянуть на API контекста реакции или для более сложных проектов я рекомендую redux.
Или вы можете передать функцию как реквизит и использовать ее как обратный вызов в дочерних элементах, чтобы передать что-то родителю.
если вы хотите пройти через многие компоненты, лучше использовать управление состоянием. Таким образом, вы можете избежать сложных компонентов.
@sashiksu Состояние и реквизит - две разные вещи. Хранение реквизита в состоянии является антипаттерном. Управление состоянием также не работает для функций обратного вызова, которые хочет использовать OP.