首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问子组件中的父组件状态?

如何访问子组件中的父组件状态?
EN

Stack Overflow用户
提问于 2017-03-18 15:13:28
回答 2查看 10.5K关注 0票数 2

我使用的反应路由器(V3)在我的应用程序路由的目的。我有一些嵌套的路由,希望访问子组件中的父组件状态。

路线:

代码语言:javascript
复制
<Route component={Main}>
   <Route path="home" component={Home} />
</Route>

主要组件(父组件):

代码语言:javascript
复制
export default class Main extends Component {
  constructor(prop){
    super(prop);
    this.state = {
      user : {}
    }
  }

  render(){
    return (
      <div>
        Main component
      </div>
    )
  }
}

家庭组件(子):

代码语言:javascript
复制
export default class Home extends Component {
  constructor(prop){
    super(prop);
  }

  render(){
    return (
      <div>
        Main component
        want to access user data here. how to access user from parent component?
      </div>
    )
  }
}

Home组件中,我希望访问用户数据,即父组件Main中的用户数据。是否有任何方式访问子组件中的父组件状态?

EN

回答 2

Stack Overflow用户

发布于 2017-03-18 15:39:10

您的问题是,您不能仅仅将user作为道具传递给Home,因为App并不直接呈现Home。你是通过React-Router这样做的。

这里有两条路:

  1. 使用像Reduxconnect()这样的状态管理解决方案-- MainHome --用于存储中的user。这样,user不是Main状态的一部分,而是应用程序存储的一部分,可以从其他组件访问。这是最复杂/最可扩展的解决方案。
  2. 使用语境。在某些情况下,您希望通过组件树传递数据,而不必在每个级别手动传递支持。您可以在与强大的“上下文”API作出反应时直接这样做。如果您想避免使用Redux或Mobx或任何状态管理,这可能是最好的方法。
票数 12
EN

Stack Overflow用户

发布于 2018-06-19 19:52:12

将父组件的状态作为支持发送到子组件。在父组件中获取这样的子组件..。

代码语言:javascript
复制
<Home user={this.state.user} />

通过this.props.user访问子级用户

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42876063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档