提交 74d89cd5 编写于 作者: Y yamila 提交者: 田雨
上级 36900347
...@@ -275,7 +275,7 @@ link1.set(49); // two-way sync: link1.get() == link2.get() == prop.get() == 49 ...@@ -275,7 +275,7 @@ link1.set(49); // two-way sync: link1.get() == link2.get() == prop.get() == 49
```ts ```ts
// 构造LocalStorage实例 // 构造LocalStorage实例
let storage = new LocalStorage({ 'PropA': 47 }); let storage = new LocalStorage({ 'PropA': 47 });
// 调用link9+接口构造'PropA'的双向同步数据,linkToPropA 是全变量 // 调用link9+接口构造'PropA'的双向同步数据,linkToPropA 是全变量
let linkToPropA = storage.link('PropA'); let linkToPropA = storage.link('PropA');
@Entry(storage) @Entry(storage)
......
...@@ -400,7 +400,7 @@ struct Library { ...@@ -400,7 +400,7 @@ struct Library {
在下面的示例中,更改了\@State 修饰的allBooks数组中Book对象上的属性,但点击“Mark read for everyone”无反应。这是因为该属性是第二层的嵌套属性,\@State装饰器只能观察到第一层属性,不会观察到此属性更改,所以框架不会更新ReaderComp。 在下面的示例中,更改了\@State 修饰的allBooks数组中Book对象上的属性,但点击“Mark read for everyone”无反应。这是因为该属性是第二层的嵌套属性,\@State装饰器只能观察到第一层属性,不会观察到此属性更改,所以框架不会更新ReaderComp。
``` ```ts
let nextId: number = 1; let nextId: number = 1;
// @Observed // @Observed
...@@ -465,7 +465,7 @@ struct Library { ...@@ -465,7 +465,7 @@ struct Library {
需要使用\@Observed装饰class Book,Book的属性将被观察。 需要注意的是,\@Prop在子组件装饰的状态变量和父组件的数据源是单向同步关系,即ReaderComp中的\@Prop book的修改不会同步给父组件Library。而父组件只会在数值有更新的时候(和上一次状态的对比),才会触发UI的重新渲染。 需要使用\@Observed装饰class Book,Book的属性将被观察。 需要注意的是,\@Prop在子组件装饰的状态变量和父组件的数据源是单向同步关系,即ReaderComp中的\@Prop book的修改不会同步给父组件Library。而父组件只会在数值有更新的时候(和上一次状态的对比),才会触发UI的重新渲染。
``` ```ts
@Observed @Observed
class Book { class Book {
public id: number; public id: number;
...@@ -537,11 +537,12 @@ struct MainProgram { ...@@ -537,11 +537,12 @@ struct MainProgram {
} }
Row() { Row() {
Column() Column() {
// customCounter必须从父组件初始化,因为MyComponent的customCounter成员变量缺少本地初始化;此处,customCounter2可以不做初始化。 // customCounter必须从父组件初始化,因为MyComponent的customCounter成员变量缺少本地初始化;此处,customCounter2可以不做初始化。
MyComponent({ customCounter: this.mainCounter }) MyComponent({ customCounter: this.mainCounter })
// customCounter2也可以从父组件初始化,父组件初始化的值会覆盖子组件customCounter2的本地初始化的值 // customCounter2也可以从父组件初始化,父组件初始化的值会覆盖子组件customCounter2的本地初始化的值
MyComponent({ customCounter: this.mainCounter, customCounter2: this.mainCounter }) MyComponent({ customCounter: this.mainCounter, customCounter2: this.mainCounter })
}
} }
} }
} }
......
...@@ -14,17 +14,17 @@ LazyForEach( ...@@ -14,17 +14,17 @@ LazyForEach(
keyGenerator?: (item: any) => string // (可选) .键值生成函数 keyGenerator?: (item: any) => string // (可选) .键值生成函数
): void ): void
interface IDataSource { interface IDataSource {
totalCount(): number; // Get total count of data totalCount(): number; // 获得数据总数
getData(index: number): any; // Get single data by index getData(index: number): any; // 获取索引值对应的数据
registerDataChangeListener(listener: DataChangeListener): void; // Register listener to listening data changes registerDataChangeListener(listener: DataChangeListener): void; // 注册数据改变的监听器
unregisterDataChangeListener(listener: DataChangeListener): void; // Unregister listener unregisterDataChangeListener(listener: DataChangeListener): void; // 注销数据改变的监听器
} }
interface DataChangeListener { interface DataChangeListener {
onDataReloaded(): void; // Called while data reloaded onDataReloaded(): void; // 重新加载数据时调用
onDataAdd(index: number): void; // Called while single data added onDataAdd(index: number): void; // 添加数据时调用
onDataMove(from: number, to: number): void; // Called while single data moved onDataMove(from: number, to: number): void; // 数据移动起始位置与数据移动目标位置交换时调用
onDataDelete(index: number): void; // Called while single data deleted onDataDelete(index: number): void; // 删除数据时调用
onDataChange(index: number): void; // Called while single data changed onDataChange(index: number): void; // 改变数据时调用
} }
``` ```
......
...@@ -62,11 +62,11 @@ try { ...@@ -62,11 +62,11 @@ try {
**系统能力:** SystemCapability.ArkUI.ArkUI.Full。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full。
| 名称 | 类型 | 必填 | 说明 | | 名称 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------- | ---- | ---------------------------------------- | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| message | string\| [Resource](../arkui-ts/ts-types.md#resource类型)<sup>9+</sup> | 是 | 显示的文本信息。 | | message | string\| [Resource](../arkui-ts/ts-types.md#resource类型)<sup>9+</sup> | 是 | 显示的文本信息。<br>**说明:** <br/>默认字体为'Harmony Sans',不支持设置其他字体。 |
| duration | number | 否 | 默认值1500ms,取值区间:1500ms-10000ms。若小于1500ms则取默认值,若大于10000ms则取上限值10000ms。 | | duration | number | 否 | 默认值1500ms,取值区间:1500ms-10000ms。若小于1500ms则取默认值,若大于10000ms则取上限值10000ms。 |
| bottom | string\| number | 否 | 设置弹窗边框距离屏幕底部的位置。<br>默认值:80vp | | bottom | string\| number | 否 | 设置弹窗边框距离屏幕底部的位置。<br>默认值:80vp |
## promptAction.showDialog ## promptAction.showDialog
......
...@@ -170,7 +170,7 @@ Grid() { ...@@ -170,7 +170,7 @@ Grid() {
} }
} }
.rowsTemplate('1fr 1fr') .rowsTemplate('1fr 1fr')
.rowsTemplate('1fr 1fr') .columnsTemplate('1fr 1fr')
``` ```
对于内容结构相似的多个GridItem,通常更推荐使用ForEach语句中嵌套GridItem的形式,来减少重复代码。 对于内容结构相似的多个GridItem,通常更推荐使用ForEach语句中嵌套GridItem的形式,来减少重复代码。
...@@ -193,7 +193,7 @@ struct OfficeService { ...@@ -193,7 +193,7 @@ struct OfficeService {
}, service => service) }, service => service)
} }
.rowsTemplate('1fr 1fr') .rowsTemplate('1fr 1fr')
.rowsTemplate('1fr 1fr') .columnsTemplate('1fr 1fr')
... ...
} }
... ...
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册