2015-11-05 55 views
1

我想要一个能够查找某个React类类型的所有后代并将其传递给它的父组件。因此,考虑这样的结构:如何将道具传递给某种类型的所有子孙

<Parent> 
    <div> 
    <em> 
     <GimmeProps /> 
    </em> 
    </div> 
    <GimmeProps /> 
</Parent> 

ParentcomponentDidMount方法将能够找到所有的<GimmeProps>元素,并将它们设置为这样:

<GimmeProps magic={this.callback} /> 

我会怎么做呢?我已经试过递归使用React.Children.forEach,但是我不能告诉React类的类型,我不认为我可以这样设置道具。

回答

1

我相信你要找的是context,而不是道具。上下文在许多方面都像道具一样行事,但是它们是从一个组件传递给他们所有的子孙。

他们可以在里面使用this.context.foo

这里有一个博客帖子解释如何使用道具儿童访问: https://www.tildedave.com/2014/11/15/introduction-to-contexts-in-react-js.html

官方反应文档背景: https://facebook.github.io/react/docs/context.html

+0

'context'是被风险弃用。我看到React开发人员之间的讨论,他们都没有真正喜欢这部分API。 – ffxsam

+0

@ffxsam,那么有什么选择?有你自己的特殊'上下文'道具,每个图层手动传递? –

+0

@ReneSaarsoo不知道替代是什么,这就是我在这里发布的原因。我可以使用Flux架构,但我试图保持这些组件100%纯正的React。 – ffxsam

相关问题