You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import React, { createContext } from 'react' // App -> A -> C
// App数据 -> C
/* 注意事项: 1.上层组件和下层组件关系是相对的,只要存在就可以使用,通常都会通过 App 作为数据提供方 2.这里涉及到的语法都是固定的,有两处:(1)提供的位置:通过 value 提供数据;(2)获取的位置 { value => 使用 value 做什么都可以 } */
// 1.导入 createContext 方法并执行, 解构提供者和消费者
const { Provider, Consumer } = createContext()
function ComA() { return ( <div> this is ComA <ComC /> </div> ) }
function ComC() { return ( <div> thi is ComC, {/* 3.通过 Consumer 使用数据 */} <Consumer>{(value) => <span>{value}</span>}</Consumer> </div> ) }
class App extends React.Component { state = { message: 'this is message', }
render() { return ( // 2.使用 provider 包裹根组件
<Provider value={this.state.message}> <div> <ComA /> </div> </Provider> ) } }
export default App
|