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