Skip to content

常见问题

初始化相关

组件样式不生效?

请确保在 EntryAbility.etsonCreate 中调用了 TnInit 初始化方法。主题系统依赖 AppStorageV2 全局存储,未初始化时组件无法获取样式令牌。

状态管理版本冲突?

TuniaoUI 鸿蒙版强制使用 V2 状态管理。如果您的页面使用了 @Component(V1),与 TuniaoUI 的 @ComponentV2 可能存在兼容性问题。建议统一使用 V2 版本装饰器。

组件使用

如何自定义组件颜色?

大部分组件支持 bgColortextColor 等自定义颜色属性,直接传入 ResourceColor 类型即可:

typescript
TnButton({
  content: "自定义颜色",
  bgColor: $r("app.color.tn_color_red"),
  textColor: $r("app.color.tn_color_white"),
})

Picker 系列组件如何使用?

Picker、DateTimePicker、RegionPicker 均通过 open 属性控制显示/隐藏,配合 onConfirm / onCancel 回调处理用户操作:

typescript
TnPicker({
  open: this.showPicker,
  data: this.pickerData,
  onConfirm: (value, index) => {
    this.selectedValue = value;
    this.showPicker = false;
  },
  onClose: () => {
    this.showPicker = false;
  },
})

Form 表单如何进行校验?

通过 TnFormControllervalidate 方法触发校验:

typescript
@Local formController: TnFormController = new TnFormController();

// 触发校验
const result = await this.formController.validate();
if (result.valid) {
  // 校验通过
}

开发相关

如何新增自定义颜色资源?

resources/base/element/color.json 中添加颜色定义,并通过 $r("app.color.xxx") 引用。如需支持深色模式,还需在 resources/dark/element/color.json 中添加对应的深色值。