Reactjs 反应:将道具传递给后代

Reactjs 反应:将道具传递给后代,reactjs,Reactjs,在React中将道具传递给后代组件是否有推荐的模式 下面,我将prop回调传递给子组件: Master=React.createClass({ render:function(){ 返回( ); } }); ListComp=React.createClass({ render:function(){ this.props.items.forEach(函数(项){ items.push(); },这个); 返回( {items} ); } }); 然后,回调属性被传递给子组件: ItemCom

在React中将道具传递给后代组件是否有推荐的模式

下面,我将prop
回调传递给子组件:

Master=React.createClass({
render:function(){
返回(
);
}
});
ListComp=React.createClass({
render:function(){
this.props.items.forEach(函数(项){
items.push();
},这个);
返回(
    {items}
); } });
然后,
回调
属性被传递给子组件:

ItemComp=React.createClass({
render:function(){
返回(
  • ); }, handleClick:函数(e){ e、 预防默认值(); this.props.callback(); } });
    像这样将道具向下传递两次是正确的还是应该以某种方式引用它的继承


    我在文档中看到了一个
    transferPropsTo
    方法,从日志记录来看,我似乎可以通过
    this.props.\uuuu owner\uuuu.props
    从后代那里获得
    callback
    ,但是那些双下划线让我觉得我不应该这样做。

    是的,这是惯用法。将每个组件视为一个函数,其参数是道具——从这个角度看,明确传递道具似乎更为正常。我们发现,将所有内容都显式化可以使事情更易于维护,这样您就可以看到组件的所有输入以及您传递的确切内容

    (React的未来版本可能会包括一个名为“上下文”的功能,它可以隐式地传递信息,但它可能会使代码更难推理,所以我几乎一直都喜欢明确。)

    更新(非原作者)

    最终添加了文档(该文档是在2015年夏季和2016年夏季之间添加的,可能是在0.14版中添加的):


    请注意,这也是简化存储在层次结构中传递的方法。

    我认为传递回调两次没有问题。它需要更多的输入,但它是明确和容易理解的。在使用一个中等大小的Angular JS应用程序后,“上下文”功能听起来像Angular的作用域机制,听起来令人困惑$范围与$rootScope、范围注入。。。React(0.8.0)当前版本的明确性赢得了我的支持,让我明白了旧的JS范围规则。我们非常清楚这一点。上下文目前在master中是可用的,但它们没有文档记录,并且可能会发生更改,因为我们希望确保保持清楚。上下文最多只能是一个可选的高级功能,这太好了。我确信在这个框架内,它是有用的,并且在一些奇怪的用例中是有用的。这里有一篇名为“React中的上下文介绍”的博客文章:-这个特性没有文档记录,所以请谨慎使用,但我发现它在一些特定的情况下是有用的。