使用Context,可以跨越组件进行数据传递

import React from 'react';
import ReactDOM from 'react-dom'; const ThemeContext = React.createContext({
background: 'red',
color: 'white'
});

通过静态方法React.createContext()创建一个Context对象,这个Context对象包含两个组件,<Provider /><Consumer />

class App extends React.Component {
render () {
return (
<ThemeContext.Provider value={{background: 'green', color: 'white'}}>
<Header />
</ThemeContext.Provider>
);
}
}

<Provider />value相当于现在的getChildContext()

class Header extends React.Component {
render () {
return (
<Title>Hello React Context API</Title>
);
}
} class Title extends React.Component {
render () {
return (
<ThemeContext.Consumer>
{context => (
<h1 style={{background: context.background, color: context.color}}>
{this.props.children}
</h1>
)}
</ThemeContext.Consumer>
);
}
}

<Consumer />children必须是一个函数,通过函数的参数获取<Provider />提供的Context

参考自:https://www.jianshu.com/p/eba2b76b290b

最新文章

  1. &lt;精通JavaScript&gt;---阅读笔记01
  2. C++11特性:decltype关键字
  3. 安卓中級教程(4):ScrollView與ListView之間的高度問題
  4. mac上的替代软件
  5. extjs Combobox动态加载数据问题,mode:local 还是remote
  6. selectors实现高并发
  7. 【LeetCode】102 - Binary Tree Level Order Traversal
  8. 基于JQuery+JSP的无数据库无刷新多人在线聊天室
  9. HDU2111 Saving HDU 【贪心】
  10. 清空DateTimePicker控件的好方法
  11. PHP和MySQL Web开发 原书第4版 高清文字版,有目录,附带源码
  12. IOS中实例的权限控制
  13. [原]创建三个输入文本框,当光标离开文本框的时候如果文本框为空,则将文本框背景色设置为红色,如果不为空则为白色。提示:焦点进入控件的事件是onfocus,焦点离开控件的事件是onblur
  14. Mysql net start mysql启动,提示发生系统错误 5 拒绝访问,原因所在以及解决办法
  15. 【FlashPlayer】-Debug版本-开发人员推荐
  16. Codeforces Round #436 (Div. 2) E. Fire
  17. 在项目管理中如何保持专注,分享一个轻量的时间管理工具【Flow Mac版 - 追踪你在Mac上的时间消耗】
  18. 使用log
  19. MySQL优化之——备份和恢复
  20. 《剑指offer》-找到字符串中第一个只出现一个的字符

热门文章

  1. 13 oracle数据库坏块-逻辑坏块(模拟/修复)
  2. 001-Django简介与项目创建
  3. [Usaco2017 Jan]Promotion Counting
  4. Python 内置函数super
  5. Spring MVC-学习笔记(4)数据绑定流程
  6. sudo pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple ipython
  7. MySQL explain,type分析(转)
  8. SCUT - G - 魔法项链 - 树状数组
  9. Ubuntu 增加新用户并赋予root权限及免密的方法
  10. Nginx 配置状态信息虚拟主机