[react] 怎么使用Context开发组件?

[react] 怎么使用Context开发组件? 

import React, {Component} from 'react'// 首先创建一个 context 对象这里命名为:ThemeContext
const ThemeContext = React.createContext('light')// 创建一个祖先组件组件 内部使用Provier 这个对象创建一个组件 其中 value 属性是真实传递的属性
class App extends Component {render () {return (<ThemeContext.Provider value="dark"><Toolbar /></ThemeContext.Provider>)}
}// 渲染 button 组件的外层包裹的属性
function Toolbar () {return (<div><ThemeButton /></div>)
}
// 在 Toolbar 中渲染的button 组件 返回一个 consumer (消费者)将组件组件的 value 值跨组件传递给 // ThemeButton 组件
function ThemeButton (props) {return (<ThemeContext.Consumer>{ theme => <button {...props} theme={theme}>{theme}</button> }</ThemeContext.Consumer>)
}

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论



主目录

与歌谣一起通关前端面试题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 进程通信 -- 信号

一、概述 信号用于保持进程间的通信&#xff0c;可以备发送到一个进程或者一组进程&#xff0c;发送给进程的这个唯一信息通常是标志信号的一个数。信号可从键盘终端产生、虚拟内存中非法访问系统资源等情况下产生。信号异步发生&#xff0c;收到信号的进程可以采取某种动作或…

简单理解Socket

&#xfeff;&#xfeff;TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族&#xff0c; TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;即传输控制协议/网间协议&#xff0c;定义了主机如何连入因特网及数据如何再它们之间传输的标准&…

女人必知:10个好习惯 让老公不想出轨

阅读提示&#xff1a;要知道&#xff0c;妻子这10个动作是征求了数百名老公的意见之后进行总结得出的&#xff0c;不仅效果显著&#xff0c;杀伤力强&#xff0c;最关键的是简单易行。女人必知&#xff1a;10个好习惯 让老公不想出轨  1.老公累了&#xff0c;靠在沙发上睡了&…

codeforce Gym 100500F Door Lock (二分)

根据题意略推一下&#xff0c;其实就是问你满足(a*(a1))/2 < m < ((a1)*a(a2))/2的a和m-(a*(a1))/2 -1是多少。 二分求解就行了 #include<cstdio>using namespace std; typedef long long ll;int main() {int T;scanf("%d",&T);for(int k 1; k <…

write() vs. writev()

From: http://www.cppblog.com/whoami17/archive/2009/05/10/82452.html 今天突然想比较一下 write() 和 writev() 的性能&#xff0c; 网上google了半天&#xff0c; 竟然没有发现一点有关的数据信息&#xff0c; 自己就测试了一下。 平台如下&#xff1a; CentOS 5.2 Lin…

[react] React Intl是什么原理?

[react] React Intl是什么原理&#xff1f; 实现原理和react-redux的实现原理类似&#xff0c;最外层包一个Provider&#xff0c;利用getChildContext&#xff0c;将intlConfigPropTypes存起来&#xff0c;在FormattedMessage、FormattedNumber等组件或者调用injectIntl生成的…

linux下GPRS模块ppp拨号上网

&#xfeff;&#xfeff;交叉编译器&#xff1a;arm-linux-gcc-4.5.4 Linux内核版本&#xff1a;Linux-3.0 主机操作系统&#xff1a;Centos 6.5 开发板&#xff1a;FL2440 GPRS:SIM900A 在开发SIM900模块之前&#xff0c;开发板已经加载了linux内核以及文件系统&#xf…

Linux 使用sigaction查询或设置信号处理方式

一、概述 Linux的系统调用函数sigaction()可以用来查询或设置信号处理方式。 函数声明为&#xff1a; #include <signal.h>int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 如果执行成功返回0&#xff0c;否则返回-1。其中&…

mysql replicate error

工作日志之-MySQL slave Replication ErrorDescription&#xff1a; mysql> start slave;ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log [rootslave ~]# tail /var/log/mysqld.log 090105 11:…

高级I/O(七)--readv和writev函数

From: http://blog.chinaunix.net/uid-26822401-id-3158225.html readv和write函数让我们在单个函数调用里从多个不连续的缓冲里读入或写出。这些操作被称为分散读&#xff08;scatter read&#xff09;和集合写&#xff08;gather write&#xff09;。 #include <sys/uio…

CABasicAnimation动画

使用CABasicAnimation动画: CALayer *znzLayer; [[CALayer alloc]init]; //创建不断该表CALayer的transform属性动画CABasicAnimation *anim [CABasicAnimation animationWithKeyPath:"transform"];CATransform3D fromValue znzLayer.transform;//设置动画开始的属…

linux pppd脚本配置

&#xfeff;&#xfeff;摘要本文主要介绍了嵌入式Linux系统下使用pppd 2.4.4来进行PPP拨号需要使用的脚本是如何配置的&#xff0c;配置项的含义&#xff0c;同时也说明了如何来配置参数&#xff0c;实现ppp拨号上网。一&#xff0e;问题提出嵌入式Linux操作系统下&#xff…

React面试题目录汇总

总29 2021年11月10日&#xff08;更12&#xff09; [react] 什么时候使用状态管理器&#xff1f; [react] render函数中return如果没有使用()会有什么问题&#xff1f; [react] componentWillUpdate可以直接修改state的值吗 [react] 什么渲染劫持&#xff1f; [react] 说…

Linux运行可执行文件

原先以为linux下运行可执行文件在文件名前加"./"是执行命令&#xff0c;今天才搞明白是指当前目录转载于:https://www.cnblogs.com/dpc525/archive/2011/04/25/2028715.html

Linux下如何定位Java进程CPU利用率过高原因

首先通过Top命令查看占用CPU较高的进程PID&#xff0c;执行Top之后按1可以查看每个核占用比例 1 top这里由于我是用的虚拟机&#xff0c;即使我的Java进程占用CPU很高也只是占的虚拟机的&#xff0c;而对整个机器的CPU来说占的并不高。这里我们找到了pid7957 然后我们在根据pi…

在用户态下使用uint64_t

#include <stdio.h> #include <stdint.h>typedef struct {unsigned short msg_type;unsigned short msg_len;//msg body len }st_msg_h;typedef struct{char audio_name[64];uint64_t time_stamp;//输入的要播放的时间戳绝对时间int dec_ch;}st_msg_start;typedef …

【iOS开发】企业版证书($299)In-House方式发布指南

一、明确几个概念 1、企业版IDP&#xff1a;即iOS Development Enterprise Program。注意是$299&#xff0f;Year那种&#xff0c;并不是$99/Year的那种。 2、In House&#xff1a;是只企业内部发布&#xff0c;仅限企业内部人员使用。 二、In-House方式特点 1、不能发布到Appl…

[react] 说说你对windowing的了解

[react] 说说你对windowing的了解 展示长列表 如果你的应用会渲染大量的列表数据&#xff0c;我们建议使用一种称为‘windowing’的技术&#xff0c;这种技术下在任何给定的时间内只会渲染一小部分数据列表&#xff0c;并可以减少列表项的重复渲染&#xff08;即再次渲染已经渲…

ARM 移植 PPPD

&#xfeff;&#xfeff;1&#xff0e; 下载编译ppp-2.4.1 a) 解压 b) 进入chat目录&#xff0c;修改Makefile.Linux, 添加CCarm-linux-gcc c) 编译chat: make –f Makefile.linux,生成chat d) 进入pppd目录&#xff0c;修改Makefile.linux, 将CCgcc…

回车(CR)与换行(LF), '\r'和'\n'的区别

一&#xff1a;回车”&#xff08;Carriage Return&#xff09;和“换行”&#xff08;Line Feed&#xff09;起源 首先&#xff0c;弄清两个概念&#xff1a; 回车CR-将光标移动到当前行的开头。 换行LF-将光标“垂直”移动到下一行。&#xff08;而并不移…