非父子之间的通信可以通过状态提升的方式来解决,但是当组件嵌套太深时就比较麻烦了,这时可以使用 react 中的上下文来解决(实际开发中使用状态管理工具 redux)
通过 react 的 createContent() 方法创建一个 context(上下文);这个上下文里面有两个组件 Provider
和 Consumer
- Provider:提供者,用于提供数据
- Consumer:消费者,使用数据
import React from 'react'
import ReactDOM from 'react-dom'
// 1. 创建上下文,解构获取 Provider 和 Consumer
const {
Provider, Consumer } = React.createContext()
class Father extends React.Component {
state =