React 笔记 父子组件传值 | 父组件调用子组件数据 | defaultProps | propsType合法性验证

本文主要是介绍React 笔记 父子组件传值 | 父组件调用子组件数据 | defaultProps | propsType合法性验证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.通过props实现父组件像子组件传值 、方法、甚至整个父组件

传递整个父组件则   [变量名]={this}

import Header from "./Header"
render(){return(<Header msg={"我是props传递的数据"}/>)
}
import React,{Component} from "react";class Header extends Component {constructor(props){super(props)this.state={}}render() {return (<div>{this.props.msg}</div>)}
}export default Header;

2.子组件向父组件传值 

将父组件传给子组件  然后在子组件中调用父组件的方法并.bind(this,[传递数据])

父组件

import React,{Component} from "react";
import Header from "./Header"class Home extends Component {constructor(props){super(props)this.state={}}getChildData=(data)=>{alert(data)}render() {return (<div><Header home={this} /></div>)}
}export default Header;

子组件中

import React,{Component} from "react";class Home extends Component {constructor(props){super(props)this.state={}}render() {return (<div>
<button onClick={this.props.home.getChildData.bind(this,"我是向父组件传递的数据")}>子组件向父组件传值</button></div>)}
}export default Header;

上面两种都是 子组件主动给父组件传值  或者父组件主动给子组件传值

3 父组件主动调用子组件数据  通过ref  在父组件中即可主动获取子组件

import React,{Component} from "react";
import Header from "./Header"class Home extends Component {constructor(props){super(props)this.state={}}getChildData=()=>{alert(this.refs.footer.state.msg)}render() {return (<div><Header ref="header" /><button>获取子组件数据</button></div>)}
}export default Header;

4 默认props  如果你不给props传值  那么设置一个props默认值

class Home extends Component {constructor(props){super(props)this.state={}
}render() {return (<div></div>)}
}Home.defaultProps={
title:"默认title",
data:"默认data"
}

这样  如果没有设置title或者data  你也可以正常使用props.title/data

5 props类型合法性验证

引入prop-types 无需下载

import propsTypes from "prop-types"class Home extends Component {constructor(props){super(props)this.state={}
}render() {return (<div></div>)}
}Home.propsTypes={
title:propsTypes.string
}

这样title就必须是string类型了 否则会警告

这篇关于React 笔记 父子组件传值 | 父组件调用子组件数据 | defaultProps | propsType合法性验证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147993

相关文章

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

SpringBoot集成Milvus实现数据增删改查功能

《SpringBoot集成Milvus实现数据增删改查功能》milvus支持的语言比较多,支持python,Java,Go,node等开发语言,本文主要介绍如何使用Java语言,采用springboo... 目录1、Milvus基本概念2、添加maven依赖3、配置yml文件4、创建MilvusClient

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

SpringValidation数据校验之约束注解与分组校验方式

《SpringValidation数据校验之约束注解与分组校验方式》本文将深入探讨SpringValidation的核心功能,帮助开发者掌握约束注解的使用技巧和分组校验的高级应用,从而构建更加健壮和可... 目录引言一、Spring Validation基础架构1.1 jsR-380标准与Spring整合1