我有以下反应组件结构:
在myEditor组件中,我有一个设置状态的函数componentSelected()。在我编写每个组件的应用程序中,我只是通过组件树将componentSelected()函数作为prop传递,并从图像对象中调用它。
componentSelected={this.props.componentSelected}
然而,在这个应用程序中,我使用的是第三方组件。准确的Bootstrap标签。如何通过第三方组件将componentSelected()函数传递给它的子节点,以便它们可以调用它?
这引出了一个单独的问题。我误解了React吗?我可以调用React组件树中的函数而不将其作为支柱传递给组件吗?如果是这样,怎么样?
谢谢!
答案 0 :(得分:2)
这是正确的,convention从上到下到props
,所以你可以在MyEditor的渲染方法中做一些事情:
<BootstrapTabs>
<ComponentGrid componentSelected={this.props.componentSelected}>
...
</ComponentGrid>
</BootstrapTabs>
编辑:您可以在不更改源的情况下为BootstrapTabs添加额外的道具,但除非您的选择操作发生在该级别,否则您可以节省额外的道具传递级别。