react-prop

1.什么是prop

在react中,prop是外部传递给组件的数据。
每个react组件都是一个独立的模块,组件之外的一切就是外部世界,外部世界是通过prop来和组件对话的。

2.prop赋值

父组件使用prop给子组件传递数据

class List extends Component { 
	render() {
		return ( 
			<div> 
				<Item name='小明' age={18}/> //这里的name 和 age 就是传递给子组件的prop数据
				<Item name='小红' age={20}/>
			</div>
		)
	}
	
}

【注】使用prop传递的数据,除字符串以外都要使用{},style样式使用{{}}

3.prop取值

在子组件获取父组件传递过来的prop数据,需要使用一个构造函数,构造函数如下:

class Item extends Component {
	constructor(props) { //构造函数
		super(props);
		
		this.state = {
			name: props.name,
			age: props.age
		}
	}
}

【注】如果一个组件要定义自己的构造函数,一定要在构造函数里的第一行使用 super调用父类,如果没有调用super(props),就无法使用this.props访问到父组件传递过来的props值

render() {
	return(
		<div>
			<div>
				姓名:{this.state.name} 年龄:{this.state.age}</div>
		</div>
	)
}

在这里插入图片描述

4.propType检查

这个是对prop的一种规范,规定这个组件支持哪些prop,每个prop的类型是什么样的格式
比如:

Item.propTypes = {
	name: PropTypes.string.isRequired,
	age: PropTypes.number
}

其中 string是指定为字符串类型,isRequired则指定为必传(如果不传会报错)

import PropTypes from 'prop-types'; //引入propTypes

class Item extends Component {
	constructor(props) { 
		super(props);
		
		this.state = {
			name: props.name,
			age: props.age
		}
	}

	render() {
		return(
			<div>
				<div>
					姓名:{this.state.name} 年龄:{this.state.age}</div>
			</div>
		)
	}
}

//规定prop类型
Item.propTypes = {
	name: PropTypes.string.isRequired,
	age: PropTypes.number
}

export default Item;

【注】规定了propTypes以后,无论是传递prop的类型错误,还是prop的必要值没传,都会在控制台引发报错,但是不会影响正常渲染
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾里桃花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值