简单教你React父子组件间平级组件间传值

国庆充电特辑:

堵车堵死,废话不多说直接上菜。

1.父组件对子组件传值 利用props属性传值

class Component extends React.Component {constructor (props) {super(props);}render() {return (<div><h1>I am  {this.props.name}</h1></div>);}
}ReactDOM.render(<div><Component name='YUSIRXIAER'></Component><h1>hello world!!!</h1></div>,document.getElementById('app')
);

效果如图 爸爸的凝视,会了没(手动滑稽)

2.子组件对父组件传值 简单来说就是利用回调来完成,比如下面例子,子组件来改变父组件的颜色

// 处理父子组件间传值
class Child extends React.Component {constructor (props) {super(props);}handleClick() {this.props.colorChange('yellow')}render() {return (<div><h1>父组件的值  {this.props.bgColor}</h1><button onClick={(e) => this.handleClick(e)}>改变父组件颜色</button></div>);}
}class Father extends React.Component {constructor (props) {super(props);this.state={bgColor: '#999'};}onBgColorChange(color) {this.setState({bgColor: color})}render() {return (<div style={{background:this.state.bgColor}}><Child bgColor={this.state.bgColor} colorChange={(color)=>{this.onBgColorChange(color)}}></Child>{/* 子组件像父组件传值,设置回调 */}</div>);}
}
ReactDOM.render(<div><Father></Father></div>,document.getElementById('app')
);

看效果

3.同一父组件下平级组件间传值 ,简单一句话 子组件先传给父组件,父组件再传给那个子组件 

// 处理平级组件间传值 ,先传给父组件,父组件再传给另一个组件
class Child1 extends React.Component {constructor (props) {super(props);}handleClick() {this.props.changeChild2Color('yellow')}render() {return (<div><h1>Child1:  {this.props.bgColor}</h1><button onClick={(e) => this.handleClick(e)}>向Child2传值,改变其颜色</button></div>);}
}
class Child2 extends React.Component {constructor (props) {super(props);}render() {return (<div style={{background:this.props.bgColor}}><h1>Child2:  {this.props.bgColor}</h1></div>);}
}
class Father extends React.Component {constructor (props) {super(props);this.state={child2BgColor: '#999'};}onChild2BgColorChange(color) {this.setState({child2BgColor: color})}render() {return (<div>{/* 平级组件间传值*/}<Child1 changeChild2Color={(color)=>{this.onChild2BgColorChange(color)}}></Child1><Child2 bgColor={this.state.child2BgColor}></Child2></div>);}
}
ReactDOM.render(<div><Father></Father></div>,document.getElementById('app')
);

看效果

 

学会了吧,回见,继续堵车!!!

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

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

相关文章

Requests库的主要方法:requests.request为requests.get和requests.post两个的汇总,只是需要传方法...

1. requests.request(method,url,**kwargs&#xff09; method&#xff1a;请求方式&#xff0c;对应get/put/post等七种&#xff1a;拟获取页面的url链接&#xff1a;控制访问参数&#xff0c;共13个method&#xff1a;请求方式rrequests.request(GET,url,**kwargs) r reques…

jQuery插件开发教程

jQuery插件开发精品教程&#xff0c;让你的jQuery提升一个台阶 要说jQuery 最成功的地方&#xff0c;我认为是它的可扩展性吸引了众多开发者为其开发插件&#xff0c;从而建立起了一个生态系统。这好比大公司们争相做平台一样&#xff0c;得平台者得天下。苹果&#xff0c;微软…

Html Email 邮件html页编写指南

前言 写过邮件的html的童学应该都知道&#xff0c;邮件的html一般都用table来布局&#xff0c;为什么呢&#xff1f;原因是大多数的邮件客户端&#xff08;比如Outlook和Gmail&#xff09;&#xff0c;会过滤HTML设置&#xff0c;让邮件面目全非。 经过多次的邮件编写实践及度…

vue父组件异步获取动态数据传递给子组件获取不到值

原理&#xff1a; 在父组件中使用axios获取异步数据传给子组件&#xff0c;但是发现子组件在渲染的时候并没有数据&#xff0c;在created里面打印也是空的&#xff0c;结果发现一开始子组件绑定的数据是空的&#xff0c;在请求数据没有返回数据时&#xff0c;子组件就已经加载了…

MAC 下配置JavaEE开发环境

1、安装jdk&#xff0c;官网下载 路径&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/index.html 选择合适的版本下载即可。 2、配置Java环境变量 &#xff08;1&#xff09;commandspace 输入termimal 打开终端 &#xff08;2&#xff09;在终端中输…

微服务深入浅出(7)-- 网关路由Zuul

Zuul用于构建边界服务&#xff0c;致力于动态路由&#xff0c;过滤&#xff0c;监控&#xff0c;弹性伸缩和安全等方向。 1、ZuulRibbonEureka结合&#xff0c;可以实现智能路由和负载均衡 2、网关将所有服务的API接口统一聚合统一暴露 3、网关统一爆率接口后&#xff0c;可以做…

判断JavaScript对象为null或者属性为空

首先说下null与undefined区别&#xff1a; 对已声明但未初始化的和未声明的变量执行typeof&#xff0c;都返回"undefined"。 null表示一个空对象指针&#xff0c;typeof操作会返回"object"。 一般不显式的把变量的值设置为undefined&#xff0c;但null相…

font face如何导入自定义字体

首先&#xff0c;浏览器支持什么字体取决于用户系统里安装了什么字体&#xff0c;比如CSS中这么写&#xff1a; font-family:"微软雅黑","黑体","宋体"; 那么浏览器会尝试按照从左到右的顺序依次应用&#xff0c;假设用户电脑上没有安装微软雅黑…

Python中_,__,__xx__方法区别

_xx 单下划线开头 Python中没有真正的私有属性或方法,可以在你想声明为私有的方法和属性前加上单下划线,以提示该属性和方法不应在外部调用.如果真的调用了也不会出错,但不符合规范. 方法就是以单下划线开头命名定义了&#xff0c;这种定义不会被*导入&#xff08;from module …

利用@media screen实现网页布局的自适应

利用media screen实现网页布局的自适应 优点:无需插件和手机主题,对移动设备友好,能够适应各种窗口大小。只需在CSS中添加media screen属性,根据浏览器宽度判断并输出不同的长宽值 1280分辨率以上&#xff08;大于1200px&#xff09; media screen and (min-width:1200px){#p…

C# webkit内核 网页填表

比如我要操作的是下面的input 用到的方法是 调用如下&#xff1a; webkit.StringByEvaluatingJavaScriptFromString("document.getElementsByClassName(login_i_con_li_ipt name)[0].valueThis is a Demo."); 类似这种div在webkit中好像是无法通过常规方法模拟的 这时…

p字间距 html段落内文字设置字间距间隔

只对段落p内文字设置字间距&#xff0c;段落<p>是html段落标签&#xff0c;以<p>开始&#xff0c;以</p>结束&#xff0c;通常文章分段使用p标签&#xff0c;而有时小局部布局也可以使用p来布局。通过css设置其样式实现排版目的。 这里针对p设置字间距&…

基本数据类型

上节回顾 1.循环打印数列1&#xff0c;3&#xff0c;5&#xff0c;.........&#xff0c;99 for i in range(100):if i%21:print (i) 2.turtle 库 # penup 抬笔 # pendown 落笔 # pensize 画笔大小 # pencolor 画笔颜色## 画笔运动函数 # fd 前进 # bk 后退 # goto 到达指定的坐…

修改系统默认 alert 弹框样式

修改默认 alert 弹框&#xff0c;思路很简单&#xff0c;定义一个 alert(e) 函数&#xff0c;加载最开头即可。 css部分&#xff1a; <style>#msg{width:266px;position: fixed;z-index:999;top: 49%;margin-top:-80px;left:50%;margin-left:-133px;background:#fff;bo…

Code Review的重要性

这几天一直在搞一家客户的产品升级动作&#xff0c;数据的转移已经完成大部分&#xff0c;因为升级主要的目标是处理性能问题&#xff0c;所以我针对性的对将要升级的版本进行了一些操作性能检查&#xff0c;真是不做不知道&#xff0c;一做吓一跳&#xff0c;有一个查询选择人…

Myeclipse快捷键总结大全

Myeclipse快捷键 Ctrl1 快速修复 CtrlD: 删除当前行 CtrlQ 定位到最后编辑的地方 CtrlL 定位在某行 CtrlO 快速显示 OutLine CtrlT 快速显示当前类的继承结构 CtrlW 关闭当前Editer CtrlK 快速定位到下一个 CtrlE 快速显示当前Editer的下拉列表 CtrlJ 正向增量查找(按…

秋蝉鸣泣之时

奇怪的题目背景 所误入的 是回忆的教室 所响起的 是通向绝望的计时器 所到达的 是开始的结束 你 能相信吗? 题目背景 最近礼奈酱学会了线段树和树状数组两种数据结构 由于礼奈酱上课听的很认真&#xff0c;所以她知道 树状数组常见的操作是 单点加区间求和 线段树常见的操作是…

对浅拷贝与深拷贝的研究

浅拷贝只复制指向某个对象的指针&#xff0c;而不复制对象本身&#xff0c;新旧对象还是共享同一块内存。 浅拷贝的实现方式 Object.assign()&#xff1a;需注意的是目标对象只有一层的时候&#xff0c;是深拷贝Array.prototype.concat()Array.prototype.slice()深拷贝就是在拷…

:nth-child(n)与:nth-of-type(n)为啥显示不对呢

首先是二者的区别 :nth-child(n) 是选择父元素的第n个子元素。 :nth-of-type(n) 是选择父元素的第n个同类型的子元素 举个例子&#xff1a; <div class"read"><h1>title</h1><p>paragraph1</p><p>paragraph2</p> <!…

css3 box-shadow阴影(内外阴影与发光)讲解

基础说明&#xff1a; 外阴影&#xff1a;box-shadow: X轴 Y轴 Rpx color; 属性说明&#xff08;顺序依次对应&#xff09;&#xff1a; 阴影的X轴(可以使用负值) 阴影的Y轴(可以使用负值) 阴影模糊值&#xff08;大小&#xff09; 阴影的颜色 内阴影&#xff1a;b…