如何在刷新时处理子路由中的父数据重新加载

时间:2020-03-10 06:06:52

标签: reactjs react-redux react-router

我有一条路线Parent,它得到a_data并将其置于其状态。 有Child1Child2条路由获得child_data并将其置于状态 然后有一条Grandchild1路线是Child1的子路线,它当然会得到grandchild_data ...

如果我在“孙子路线”上刷新,该如何保存从

收集的数据
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>
  )

我想避免使用redux,而只是从父级路由和子级路由重新获取数据...我只是不知道正确的方法! react-router是否有一些适合这个确切的东西? 谢谢!

0 个答案:

没有答案