在我的应用程序中,我很少使用 this.props.children,因为我经常特别知道我想要渲染哪些子级。在库或编写为在特定组件层次结构之外重用的组件中,我经常看到它。我认为 this.props.children 与该用例更相关。
编辑:我想我会详细说明 this.props.children 可以派上用场的一些情况。一个这样的例子是在创建遵循“渲染props”模式的组件时。即我有一些组件需要从多个“渲染props”HoC 中提取数据,例如 Apollo Query 组件以及状态管理 HoC。我将所有不同的数据源组合到一个 HoC 中,然后将 children 作为函数调用,传入提取我需要的所有数据的结果。话虽如此,我更喜欢并期待更广泛地采用Hooks作为渲染props的替代品。
真的是你想要渲染任意子组件的任何组件;我使用过的另一个例子 props.children 是在创建一个要求用户在呈现孩子之前进行身份验证的 HoC 时,在用户未登录时重定向到登录屏幕。我可以包装我的任何“受保护”屏幕组件有了这个 auth HoC。
它仍然是我的大多数组件不使用的东西,而只是在情况需要时应用的另一种工具。