React render props

2022/01/14 posted in  组件通信
Tags:  #React

如何向组件内部动态传入结构(组件)?

Vue 中:
使用 slot 技术,也就是通过组件标签体传入结构<A><B /></A>
React 中:
使用 children props:通过组件标签体传入结构
使用 render props:通过组件标签属性传入结构,而且可以携带数据,一般用 render 属性

children props

<A>
<B>xxxx</B>
</A>

A 组件渲染 B 组件:{this.props.children}
问题:如果 B 组件需要 A 组件内的数据 ==> 做不到

render props

<A render={(data) => <C data={data} />} />

A 组件渲染 C 组件:{this.props.render(内部 state 数据)}
C 组件读取 A 组件传入的数据:{this.props.data}