其他分享
首页 > 其他分享> > Context 实现跨层级的组件数据传递

Context 实现跨层级的组件数据传递

作者:互联网

定义:

Context 提供了一种方式,能够让数据在组件树中传递而不必一级一级手动和传递

在这里插入图片描述

item 或者任意组件都可以访问到Window

结构:
在这里插入图片描述
创建

createContext(defaultValue)
// 传一个默认值 90
const BatteryContext = createContext(90);
const OnlineContext = createContext();
// 可以同时创建多个 createContext
class App extends Component {
  state = {
    online:false,
    battery:60
  }
  render() {
  	// 导入 两个定义的值
    const { battery,online } = this.state;

    return (
    //使用两个Context 需要使用嵌套方式
      //<BatteryContext.Provider value={battery}>
          <OnlineContext.Provider value={online}>
          //通过 button按钮来实现 battery-1(当使用默认值时不对默认值起作用)
            <button type='button' onClick={()=>this.setState({battery:battery-1})} > 
                Press
            </button>
            //通过 button按钮来实现 online 取反
              <button type='button' onClick={() => this.setState({ online: !online})} >
              Switch
            </button>
            <Middle/>
          </OnlineContext.Provider>
      //</BatteryContext.Provider>
      )
  }
}

标签:createContext,层级,const,battery,Context,online,组件,默认值
来源: https://blog.csdn.net/weixin_50001396/article/details/116380716