react之useContext

news/2024/7/7 22:43:58

1. src文件夹下新建ctx/index.jsx

import { createContext } from 'react'

const Ctx = createContext({
  name: '',
  age: ''
})

export default Ctx

2. 在提供数据的组件使用Ctx.Provider组件包裹要接收数据的组件,并使用value值提供数据

import A from './A'
import Ctx from './ctx'
function App() {
  return (
    <Ctx.Provider value={{ name: '张三', age: 18 }}>
      <div>我是App组件</div>
      <A />
    </Ctx.Provider>
  )
}

export default App

3. 在接收数据的组件,使用useContext钩子,获取ctx的数据,切记要把ctx/index.jsx文件夹下暴露出来的ctx传入到useContext中

import Ctx from './ctx'
import { useContext } from 'react'
const C = () => {
  const ctx = useContext(Ctx)
  return (
    <>
      <div>我是C组件</div>
      <div>姓名:{ctx.name}</div>
      <div>年龄:{ctx.age}</div>
    </>
  )
}

export default C


http://lihuaxi.xjx100.cn/news/2125264.html

相关文章

EXCEL中利用VBA将16进制数据按照BIT进行解析,并按照BIT的数值分别显示不同的状态字符串

1、场景,在EXCEL导出数据中,经常存在BIT型变量数据的解析问题,按照每一个BIT进行处理,并将一列数值转化成多列的状态显示;例如:在EXCEL中 用 VBA实现 一个16进制数据 按照BIT进行拆解,分成多列进行显示,BIT0=0 显示ON BIT0=1 OFF BIT 1= 1 显示欠压 ,BIT1=0显示正常 …

Java毕业设计-基于springboot开发的休闲娱乐代理售票系统-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示&#xff08;源代码在文末&#xff09;二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、后台登录2.1管理员功能2.2用户功能 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开发的休闲娱乐…

js在新页面打开一个链接

在JavaScript中&#xff0c;如果你想要在新页面&#xff08;新的浏览器标签或窗口&#xff09;中打开一个链接&#xff0c;你可以使用window.open()方法。这个方法接受一个URL作为参数&#xff0c;并尝试在新窗口或新标签中打开它。 下面是一个简单的示例&#xff1a; // 打开…

vmware,linux,centos7,NAT模式下的网络配置

centos7的NAT网络配置 NAT模式说明虚拟机网络配置工具本机配置net8网络&#xff08;NAT的网域&#xff09;本机的IP配置(用于net8局域网内解析主机IP和域名对应关系使用)&#xff08;可选&#xff09;虚拟机内的网络配置虚拟机ping不通www.baidu.com的情况下虚拟机ping可以ping…

containerd源代码分析: 整体架构

本文从代码的大的整体组织上来熟悉containerd项目 containerd项目总的说是一个cs模式的原生控制台程序组。containerd作为服务端来接收处理client的各种请求&#xff0c;如常用的拉取推送镜像&#xff0c;创建查询停止容器&#xff0c;生成快照&#xff0c;发送消息等。client/…

美地方联储行长预计年内将有三次降息

美国芝加哥联邦储备银行行长奥斯坦古尔斯比&#xff08;Austan Goolsbee&#xff09;25日表示&#xff0c;美国通货膨胀率下降的基本面没有改变&#xff0c;美联储在2024年实施三次降息符合预期。 古尔斯比当天接受美国媒体采访时表示&#xff0c;美国经济正处于一个不确定的状…

订单系统-RPC快速入门

RPC快速入门 概述 关于rpc&#xff0c;只需要知道他是一种协议&#xff0c;项目之间能够远程调用函数。 快速入门 我们前边下载好的两个包&#xff0c;在idea中打开之后&#xff0c;我们创建这么几个文件夹。 至于是干什么的&#xff0c;以后细说。创建好之后我们在produc…

Linux安装mysql 5.7 设置自启动

1.官网下载文件 MySQL :: Download MySQL Community Server (Archived Versions) 2.检查&#xff0c;安装环境 先检查有没有安装mariadb rpm -qa|grep mariadb 如果有就卸载掉 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 安装libaio、perl、net-tools库&#xff…