react context跨组件传递信息
2024-10-18 21:24:44
从腾讯课堂看到的一则跨组件传递数据的方法,贴代码:
使用步骤:
1.在产生参数的最顶级组建中,使用childContextTypes静态属性来定义需要放入全局参数的类型
2.在父组件中,提供状态,管理数据,
3.声明子组件获取全局参数的方式
4.在子组件中,使用contextTypes静态属性,生命需要获取父组件放入全局context中的数据类型
5.在子组件需要的地方获取全局参数
父组件: import React, { Component } from 'react';
import logo from './logo.svg';
import PropTypes from 'prop-types';
import Screen from './components/screen/Screen';
import ControlPanel from './components/control/ControlPanel';
import './assets/styles/core.css'; class App extends Component { // 1.在产生参数的最顶级组建中,使用childContextTypes静态属性来定义需要放入全局参数的类型
static childContextTypes = {
title: PropTypes.string,
play: PropTypes.string,
stop: PropTypes.string
} // 2.在父组件中,提供状态,管理数据,
state = {
title: '少女时代',
play: '播放',
stop: '暂停'
} //3.声明子组件获取全局参数的方式
getChildContext() {
return {
title: this.state.title,
play: this.state.play,
stop: this.state.stop
}
} render() {
return (
<div className="itsource-tv">
<Screen />
<ControlPanel />
</div>
);
}
} export default App;
子组件:
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import TVInfo from './Tvinfo' class Screen extends Component {
render() {
return (
<TVInfo />
);
}
} export default Screen;
孙组件:
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import './ty-info.css'; class TVInfo extends Component {
static contextTypes = {
title: PropTypes.string
}
render() {
return (
<div className="TVInfo">
{this.context.title}
</div>
);
}
} export default TVInfo;
最新文章
- 简单动态规划-LeetCode198
- flex 弹性布局
- nginx location在配置中的优先级
- Faster-rnnlm代码分析2 - HSTree的构造
- hash 分区的用途是什么?
- 2016HUAS暑假集训训练2 A - Is It A Tree?
- elasticsearch的服务器响应异常及应对策略
- atitit.团队建设总结o6o fix
- 使用 环境变量 来配置批量配置apache
- [转]javascript函数定义表达式和函数声明的区别
- (转)Hadoop的InputFormats和OutputFormats
- [Spark内核] 第28课:Spark天堂之门解密
- 标准Http协议的六种请求方法详解
- javaScript设计模式之----工厂模式
- 用mplayer从视频中按周期提取帧
- eolinker 安装时遇到的坑
- 通过windows远程桌面连接CentOS系统
- 如何使用点击事件弹出一个url的iframe选项卡
- tcp 关闭socket 不发 FIN(RST)
- selinux权限问题【转】