-
创建Context对象 导出 Provider 和 Consumer对象
//解构createContext() const { Provider, Consumer } = createContext()
-
使用Provider包裹根组件提供所需要的数据
<Provider value={this.state.message}> {/* 这里放根组件 */} </Provider>
-
需要用到数据的组件使用Consumer包裹获取数据
<Consumer > {value => /* value是传过来的值,进行渲染*/} </Consumer>
代码示例
import React, { createContext } from 'react'
// 1. 创建一个Context对象
const { Provider, Consumer } = createContext()
// 3. 组件C接收传过来的值
function ComentC() {
return (
<Consumer >
{value => <div>{value}</div>}
</Consumer>
)
}
function ComentA() {
return (
<ComentC/>
)
}
// 2. 提供要传输的数据
class App extends React.Component {
state = {
message: '这是根组件的数据'
}
render() {
return (
<Provider value={this.state.message}>
<div className="app">
<ComentA />
</div>
</Provider>
)
}
}
export default App