通过 context 来传值
Const { Provider , Consumer } = React.createContext();
<Provider value=”pink”></Provider> 传递数据
<Consumer>{ data => <span>我是子节点—{ data }</span> }</Consumer> 接收数据
// Provider 是写在最外层的
<Provider value={this.sate.num}>
<div className='parent'>
<Father />
</div>
</Provider>
// Consumer 哪里用就在哪里写
<div className='son'>
<Consumer>
{
data => console.log(data)
}
</Consumer>
</div>
Props
- Props的值可以是任意类型
- 也可以添加验证规则来规范传的值
在组件调用的时候写成双标签给里面写内容的话,就相当于给此组件通过props传了数据,
数据是一个对象里面有个children键值,如果传的是一个函数的话,那么props.children拿到的就是这个函数,如果传的是字符串,那么同理,但是如果是标签的话,props.children就是一个虚拟的DOM对象
<Son>{hello}</Son>
这样传值只能通过props.children来取值
<Son data={hello}/>
这样传值的话直接通过props.data就能取到值