概念上,组件是封闭的环境。React中是单向数据流的设计,也就是是说只有父组件传递资料给子组件这回事。以正确的技术说明,拥有者组件可以设置被拥有者组件中的数据。

那么子组件要如何与父组件沟通这件事,简单的来说,是一种迂回的作法,在父组件中设置了一个方法(函数),然后传递给子组件的props,子组件在事件触发时,直接呼叫这个props所设置的方法(函数)。但这中间,有谁(对象)呼叫了函数的设置,也就是this的作用。
父组件到子组件用props设置,子组件到父组件用上面说的方式,这是基本的套路,但它只适用于简单的组件结构,因为它相当麻烦,而且不灵活。那么如果要作到子组件与子组件要彼此沟通这件事,就不是太容易。当然,我想你已经听过,复杂的应用需要额外使用flux或redux来解决这问题,这是必经之路。
不过,在思考整体的React应用设计时,要有应用领域状态,也就是全局状态的概念。第一是应用领域state(状态)的,通常会在父组件中,而不是子组件中,子组件有可能很多,位于树状结构很深的地方。
例子:
子组件
import React, { Component } from 'react'
export default class Item extends Component {
constructor(props) {
super(props)
this.state = {
prices: 0
}
}
handleChange(){
const prices =800;
this.setState({
prices: price
})
//用传过来的changePrice属性(props),是个函数,呼叫它把price交给父组件中的函数去处理
this.props.changePrice(price)
}
render() {
const { prices } = this.state;
return (
<div>
<div onChange={this.handleChange.bind(this)}>
</div>
<p>{prices}</p>
</div>
)
}
}
父组件
import React, { Component } from 'react';
import Item from './Item'
class App extends Component {
constructor(props) {
super(props)
this.state = {price: 0}
}
//给子组件用来传price用的方法
changePrice(price){
this.setState({price: price})
}
render() {
return (
<div>
<Item changePrice={this.changePrice.bind(this)}/>
<p>{this.state.price}</p>
</div>
);
}
}
export default App;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# react父子组件传值
# react
# 父子组件通信
# 父组件
# 传递
# React中使用TS完成父组件调用子组件的操作方法
# react父组件调用子组件的方式汇总
# React父组件调用子组件中的方法实例详解
# react父组件更改props子组件无法刷新原因及解决方法
# React中父组件如何获取子组件的值或方法
# React父组件如何调用子组件的方法推荐
# 这是
# 这件事
# 我想
# 是个
# 是一种
# 有可能
# 要有
# 适用于
# 会在
# 树状
# 必经之路
# 是说
# 听过
# 但这
# 因为它
# 你已经
# 这回
# 有谁
# 很深
# 它只
相关文章:
nginx修改上传文件大小限制的方法
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
如何在万网主机上快速搭建网站?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
魔方云NAT建站如何实现端口转发?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
建站与域名管理如何高效结合?
MySQL查询结果复制到新表的方法(更新、插入)
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
如何在企业微信快速生成手机电脑官网?
如何选择高效稳定的ISP建站解决方案?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
网站制作价目表怎么做,珍爱网婚介费用多少?
已有域名和空间如何搭建网站?
高端云建站费用究竟需要多少预算?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
建站之星图片链接生成指南:自助建站与智能设计教程
建站之星3.0如何解决常见操作问题?
如何在万网自助建站平台快速创建网站?
如何配置IIS站点权限与局域网访问?
无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
建站主机选哪种环境更利于SEO优化?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何使用Golang table-driven基准测试_多组数据测量函数效率
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
学校为何禁止电信移动建设网站?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
如何通过FTP空间快速搭建安全高效网站?
山东云建站价格为何差异显著?
教程网站设计制作软件,怎么创建自己的一个网站?
如何通过虚拟机搭建网站?详细步骤解析
盐城做公司网站,江苏电子版退休证办理流程?
建站之星Pro快速搭建教程:模板选择与功能配置指南
如何做网站制作流程,*游戏网站怎么搭建?
ui设计制作网站有哪些,手机UI设计网址吗?
网站制作模板下载什么软件,ppt模板免费下载网站?
上海网站制作开发公司,上海买房比较好的网站有哪些?
Python文件管理规范_工程实践说明【指导】
建站主机无法访问?如何排查域名与服务器问题
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
自助网站制作软件,个人如何自助建网站?
如何在阿里云部署织梦网站?
如何通过智能用户系统一键生成高效建站方案?
免费视频制作网站,更新又快又好的免费电影网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。