在开发过程中会经常使用自定义组件,就会遇到一个问题,在页面中引入组件后,如何把改变的值传递到自定义组件中呢,这就用到了装饰器,在这是单向传递的,用的装饰器是@State和@Prop
@State在page页面中监听数据的变化
@Prop在自定义组件中监听page页面传递过来的变化值,并赋值给组件,使用的时候必须在调用的位置进行初始化,注意此装饰器不能在@Entry页面中使用
比如自定定义一个分为左右两部分的item,当右侧的数据变化后需要把变化的值赋值给自定义的item中右侧组件来显示内容
示例如下:
// 自定义组件
@Component
export default struct ItemLayout {
private itemHeight: number = 50
private leftName: ResourceStr
@Prop rightName: string // 当PropPage中选择好时间后此属性会接收到选择的时间值并赋值给组件
private leftTextColor: ResourceColor = Color.Black
private rightTextColor: ResourceColor = Color.Black
private textSize: number = 16
private backGroundColor: Resour