通过第三方传递数据反应组件

时间:2015-07-29 10:21:09

标签: reactjs react-bootstrap

我有以下反应组件结构:

  • 的MyEditor
    • Bootstrap标签
      • 组件网格
        • 图片1
        • 图片2
        • 图片x

在myEditor组件中,我有一个设置状态的函数componentSelected()。在我编写每个组件的应用程序中,我只是通过组件树将componentSelected()函数作为prop传递,并从图像对象中调用它。

componentSelected={this.props.componentSelected}

然而,在这个应用程序中,我使用的是第三方组件。准确的Bootstrap标签。如何通过第三方组件将componentSelected()函数传递给它的子节点,以便它们可以调用它?

这引出了一个单独的问题。我误解了React吗?我可以调用React组件树中的函数而不将其作为支柱传递给组件吗?如果是这样,怎么样?

谢谢!

1 个答案:

答案 0 :(得分:2)

这是正确的,convention从上到下到props,所以你可以在MyEditor的渲染方法中做一些事情:

<BootstrapTabs> <ComponentGrid componentSelected={this.props.componentSelected}> ... </ComponentGrid> </BootstrapTabs>

编辑:您可以在不更改源的情况下为BootstrapTabs添加额外的道具,但除非您的选择操作发生在该级别,否则您可以节省额外的道具传递级别。