У меня есть маршрут Parent
, который получает a_data
и переводит его в свое состояние. Существуют маршруты Child1
и Child2
, которые получают child_data
и помещают его в свое состояние. Затем есть маршрут Grandchild1
, который является дочерним по отношению к Child1
, и он получает grandchild_data
конечно ...
Если я перефразирую sh на маршруте Grandchild, как мне сохранить данные, собранные с
class Parent extends Component {
state = {
data: { /*ParentData from api*/}
}
render() {
return(
<div>
<Route exact path='/child1' render={() => (
<ChildRoute1 parentData={this.state.data}/>
)}/>
<Route exact path='/child2' render={() => (
<ChildRoute2 parentData={this.state.data}/>
)}/>
</div>
)
}
}
class ChildRoute1 extends Component {
state = {
data: // child data from API
}
// Parent passes its data to ChildRoute1 props
render() {
return(
<div>
<Route exact path='/child1/gradnchild' render={() => (
<Grandchild parentData={this.props.parentData} childData={this.state.data} />
)}/>
</div>
)
}
const Grandchild = ({ parentData, childData }) => (
<div>
// Refreshes here... how do I refetch data from Parent and Child??
</div>
)
Я бы хотел избежать использования избыточности и вместо этого просто повторно получить данные из родительского маршрута и Детский маршрут ... Я просто не знаю, как это сделать! Реакт-роутер что-то для этой вещи есть? Спасибо!