概念

一种组件间通信方式,常用于【祖组件】与【后代组件】间通信
应用开发过程中,一般不会使用context,一般都用它封装react插件

//1 创建Context容器对象:
cosnt XxxContext = React.createContext();
// 2 渲染子组件时,外面包裹XxxContext.provider,通过value属性给后代组件传递数据:
<xxxComponent.Provider value={数据}>子组件
</xxxComponent.Provider>
// 3 后代组件读取数据
// 写法一
// 特点:简便、主要用在类组件
static contextType = xxxContext  //声明接收context
this.context //读取context中的value数据
// 写法二
// 特点:不需要this、可以接收多个context、主要用在函数组件
<xxxContext.Consumer>{value=>( //value就是context中的value数据要显示的内容)}
</xxxContext.Consumer>

实际应用


import React, { Component } from 'react';// 创建Context对象
const MyContext = React.createContext()
const { Provider, Consumer } = MyContext;class A extends Component {state = {name: 'tom',age:15}render() {const {name,age}= this.statereturn (<div><h2>组件A</h2><Provider value={{name,age}}><B/></Provider><hr /></div>);}
}class B extends Component {render() {//  console.log(this)return (<div><hr /><h2>组件B</h2><C/></div>);}
}// class C extends Component {// // 声明接收
// static contextType = MyContext
//   render() {//     const { name, age } = this.context;
//     return (
//       <div>
//          <hr />
//         <h2>组件C</h2>
//         <p>{name}-------{age}</p>//       </div>
//     );
//   }
// }function C (){return (<div><hr /><h2>组件C</h2><p><Consumer>{(value)=>(`${value.name}--------${value.age}`)}</Consumer></p></div>)}export default A;

context的使用相关推荐

  1. Go 学习笔记(68)— goroutine 并发控制神器 Context

    1. 什么是 Context 一个任务会有很多个 goroutine 协作完成,一次 HTTP 请求也会触发很多个 goroutine 的启动,而这些 goroutine 有可能会启动更多的子 gor ...

  2. Docker Context基本原理

    Docker Context基本原理 介绍 本指南介绍了上下文如何使单个Docker CLI轻松管理多个Swarm集群.多个Kubernetes集群和多个单独的Docker节点. 单个Docker C ...

  3. Android中Context 的理解

    这里记录Context的原因是新来的同事问我Android Context 怎样理解,我是这样说的,Context 英文是上下文,它是一个抽象的类,加入在MainActivity 中,Context ...

  4. Context.getExternalFilesDir()和Context.getExternalCacheDir()

    在Android手机里面,缓存的位置分为两类 一个是内部存储 另一个是外部存储 Context.getExternalFilesDir()和Context.getExternalCacheDir() ...

  5. android上下文关系,Android Context上下文的理解 Hua

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Context概念 在安卓对象中,Context是经常使用的元素-但应该也是错误使用率最高的. 你在加载资源.启动一个新 ...

  6. 用Macbook-苹果系统写代码出现显示问题Text input context does not respond to _valueForTIProperty:

    Macbook / 苹果系统写代码出现显示问题 当使用Mac系统,在写代码的时候,如果是有一个GUI显示界面,然后你又去点击这个界面.此时,将报错. 我的源代码,是读取图片,显示图片. import ...

  7. FAIL - Deployed application at context path / but context failed to start

    IDE报错:FAIL - Deployed application at context path / but context failed to start 编译通过,这个错误原因是很多地方被误用, ...

  8. findclass java_Java Context.findClass方法代码示例

    import jdk.nashorn.internal.runtime.Context; //导入方法依赖的package包/类 private static Class> simpleType ...

  9. context.xml mysql_在tomcat下context.xml中配置各种数据库连接池(示例代码)

    Tomcat6的服务器配置文件放在 ${tomcat6}/conf 目录底下.我们可以在这里找到 server.xml 和 context.xml.当然,还有其他一些资源文件.但是在在本文中我们只用得 ...

  10. java.lang.NoSuchMethodError: org.springframework.web.context.support.XmlWebApplicationContext.getEnv

    转自:https://blog.csdn.net/u012941811/article/details/16960493 ava.lang.NoSuchMethodError: org.springf ...

最新文章

  1. js中every用法_js数组中的方法 some, every, filter, find,map, reduce讲解及使用场景
  2. CSS3笔记之基础篇(三)文字与字体
  3. 光学字符识别 Tesseract-OCR 的下载、安装和基本用法
  4. mysql重要的监控参数_zabbix3.0.2使用percona mysql插件来监控mysql5.7   以及必须监控的性能参数...
  5. Xshell连接远程Linux服务器失败Could not connect to ‘192.xxx.xx.xxx‘ (port 22): Connection failed.
  6. 小米真香产品被友商怼:只有USB2.0接口 怎么播高码率的视频?
  7. IEnumerable.Select和SelectMany的区别
  8. jenkins中eclipse+ant+svn自动打包APK
  9. 华为音量键只能调通话_华为手机音量键的隐藏功能,知道一个就会好用不少!...
  10. Centos配置github
  11. 朱丹超级搜索术笔记:百度搜索相关的技巧
  12. UI-平面构成-ai-快捷键-1
  13. python允许无止境的循环_A-level Computer Science 计算机科学学习笔记/经验分享/教程 (12.6):PHP...
  14. 宜立方商城 搭建Maven第一天心得
  15. Java面试题3(jsp)
  16. supermap 数据转为shp
  17. java 绘图板_java绘图板
  18. linux查看cpu是否支持虚拟化,如何知道CPU是否支持虚拟化技术(VT)
  19. Synplify参考资料整理
  20. Redis性能问题排查方法及优化

热门文章

  1. 年仅59岁!又一国家杰青不幸逝世
  2. 【文末有福利】生成对抗网络
  3. 甜甜圈和拓扑学也有关系,你想的到吗?
  4. 费城中餐馆奇葩鸡翅定价引爆网络,数万网友想要破解数学谜题
  5. 他受他爸影响,他爸受数学家影响,最终造出了自动旋转的房子!
  6. jta mysql_JTA 使用 MySQL 分布式事务
  7. c语言打不开h文件,说那个“mem.h”头文件打不开 怎么改啊 高手们帮帮忙
  8. 深入理解C++中的RVO
  9. 如何把创建ECS(CreateInstance)作为触发器来触发函数计算
  10. 揭秘 | 双11逆天记录背后的数据库技术革新