1# arkui子系统ChangeLog 2 3## cl.arkui.1 通用事件参数支持undefined 4 5通用事件(点击事件、触摸事件、挂载卸载事件、按键事件、焦点事件、鼠标事件、组件区域变化事件)参数支持undefined。 6 7**示例:** 8 9```ts 10// xxx.ets 11@Entry 12@Component 13struct Example { 14 build() { 15 Button("test") 16 .onClick(()=>{ 17 console.log("click"); 18 }) 19 .onClick(undefined) 20 } 21} 22``` 23 24**变更影响** 25 26如果事件回调参数为undefined,那么将不再响应已经设置的事件回调。 27 28 29**关键的接口/组件变更** 30 31不涉及。 32 33**适配指导** 34 35当事件参数设置为undefined,将会禁用该事件,依据实际应用开发场景进行参数设置即可。 36 37 38## cl.arkui.2 @Prop/@BuilderParam 状态变量需要初始化或从父组件传值 39 40**示例:** 41 42```ts 43// xxx.ets 44@Entry 45@Component 46struct Parent { 47 @State message: string = 'Parent' 48 build() { 49 Column() { 50 Child() // 编译报错 51 } 52 } 53} 54 55@Component 56struct Child { 57 @Prop message: string 58 build() { 59 Column() { 60 61 } 62 } 63} 64``` 65 66**变更影响** 67 68当@Prop/@BuilderParam 状态变量未初始化且未从父组件传值时,编译无法通过。 69 70 71**关键的接口/组件变更** 72 73不涉及。 74 75**适配指导** 76 77对@Prop/@BuilderParam 状态变量做初始化赋值或从父组件调用子组件时传入。 78 79 80## cl.arkui.3 @BuilderParam 状态变量初始化赋值必须为@Builder函数/方法 81 82**示例:** 83 84```ts 85// xxx.ets 86@Builder 87function builderFunction() { 88 Text('Hello Builder') 89} 90 91function normal () { 92 93} 94 95@Component 96struct Index { 97 @BuilderParam builderParam: ()=>void = builderFunction 98 @BuilderParam builderParam2: ()=>void = normal // 编译报错 99 build() { 100 Column() { 101 102 } 103 } 104} 105``` 106 107**变更影响** 108 109@BuilderParam 状态变量初始化赋值非@Builder方法时,编译无法通过。 110 111 112**关键的接口/组件变更** 113 114不涉及。 115 116**适配指导** 117 118@BuilderParam 状态变量初始化赋值传入@Builder方法。 119 120## cl.arkui.4 Search组件的searchButton属性中SearchButtonOption修改为SearchButtonOptions 121 122**变更影响** 123 124如果显式地使用了SearchButtonOption类型,编译无法通过。 125 126**关键的接口/组件变更** 127 128searchButton属性中类型SearchButtonOption修改为SearchButtonOptions。 129 130**适配指导** 131 132SearchButtonOption修改为SearchButtonOptions。 133 134## cl.arkui.5 Overlay组件的BindSheet属性中SheetStyle修改为SheetOptions 135 136**变更影响** 137 138如果显式地使用了SheetStyle类型,编译无法通过。 139 140**关键的接口/组件变更** 141 142BindSheet属性中类型SheetStyle修改为SheetOptions。 143 144**适配指导** 145 146SheetStyle修改为SheetOptions。 147 148## cl.arkui.6 自定义组件生命周期接口onBackPress的接口返回值由void变更为void | boolean 149 150**示例:** 151 152```ts 153// xxx.ets 154@Entry 155@Component 156struct Index { 157 async onBackPress() {} // 编译报错 158 build() { 159 Column() { 160 161 } 162 } 163} 164``` 165 166**变更影响** 167 168自定义组件生命周期函数onBackPress被修饰成async时,编译无法通过。 169 170**关键的接口/组件变更** 171 172onBackPress?(): void 变更为 onBackPress?(): void | boolean。 173 174**适配指导** 175 176自定义组件生命周期接口为系统适当时机回调的同步接口,需按照SDK定义的同步接口规格使用。应用开发者只需关注在接口中实现业务能力,使用async之类的标识修改接口本身规格是不合理的。 177