HarmonyOS鸿蒙Next中关于表单的组件库有哪些?需要包含输入、展示、校验、滚动等功能

HarmonyOS鸿蒙Next中关于表单的组件库有哪些?需要包含输入、展示、校验、滚动等功能 我们有大量的表达页面,有没有关于表单的组件库,需要包含输入、展示、校验、滚动等功能

3 回复

目前没有统一的表单组件,只能通过textInputtextAreaswitchlabelslider等组件配合使用完成表单的功能。其中校验方法:TextInput有提供showError显示错误信息。

表单校验代码示例: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-textinput-V5#示例2

可以参考react中的form表单。在form组件所在的页面,设置一个对象,对象中通过key值设置对应的value,在将对象的value传入对应的组件中,在组件中检查,是否可以修改value,可以修改在传给form父组件,提交的时候,使用form定义的值对象。可参考下面的简单demo

enum formKeys {
  input1 = 'input1',
  input2 = 'input2'
}

@Component
struct Index{
  // 不定义key值类型也可以
  @State formData: Record<formKeys, string> = {
    [formKeys.input1]: '',
    [formKeys.input2]: ''
  }

  changeData = (key: formKeys, value: string) => {
    this.formData[key] = value
  }

  build() {
    Column(){
      Button('提交').onClick(() => {
        console.info(JSON.stringify(this.formData))
      })
      InputComponent({ val: this.formData.input2, onChange: this.changeData, inputKey: formKeys.input2 })
      InputComponent({ val: this.formData.input1, onChange: this.changeData, inputKey: formKeys.input1 })
    }
  }
}

@Component
struct InputComponent{
  @Prop val: string
  @Prop @Require inputKey: formKeys
  @State errMsg: string = ''

  onChange: (key: formKeys, value: string) => void = () => {}

  build() {
    Column(){
      TextInput({
        text: this.val,
        placeholder: '不可输入数字'
      }).onChange((val)=>{
        let prev = this.val
        // 先提交数据
        this.onChange(this.inputKey, val)
        // 后面这边校验,或者将这个校验提交到父级,都可以,看使用情况
        if(/\d+/.test(val)){
          this.errMsg = '不可输入数字'
          // 在这边检验的时候,需要阻止输入的话,可以先提交一个值,之后在回退到上一个值,看使用情况
          // this.onChange(this.inputKey, prev)
        } else {
          this.errMsg = ''
        }
      })
      .showError(this.errMsg)
    }
  }
}

更多关于HarmonyOS鸿蒙Next中关于表单的组件库有哪些?需要包含输入、展示、校验、滚动等功能的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,表单相关的组件库主要包括以下几种:

输入组件:

  • TextInput:用于文本输入,支持单行和多行输入。
  • Picker:用于选择器,支持日期、时间、普通选项等选择。
  • Slider:用于滑动选择数值范围。
  • Checkbox:用于多选框,支持单个或多个选择。
  • RadioButton:用于单选框,支持单选操作。

展示组件:

  • Text:用于文本展示,支持多种样式和布局。
  • Image:用于图片展示,支持本地和网络图片。
  • Progress:用于进度条展示,支持线性进度和环形进度。
  • DataPanel:用于数据面板展示,支持多种数据格式。

校验组件:

  • Form:用于表单整体校验,支持提交前的数据校验。
  • Validator:用于单个输入项的校验,支持自定义校验规则。

滚动组件:

  • ScrollView:用于滚动视图,支持垂直和水平滚动。
  • ListContainer:用于列表展示,支持滚动和加载更多。

这些组件库涵盖了表单的输入、展示、校验和滚动等功能,能够满足大部分表单开发需求。

在HarmonyOS鸿蒙Next中,表单相关的组件库主要包括以下几个核心组件:

  1. TextInput:用于文本输入,支持多行、单行、密码等模式。
  2. TextArea:多行文本输入框,适用于长文本输入场景。
  3. Picker:用于选择日期、时间或其他自定义选项。
  4. Checkbox:复选框,支持多选。
  5. Radio:单选框,支持单选。
  6. Switch:开关控件,用于开启或关闭某项功能。
  7. Label:用于展示静态文本或标签,支持富文本。
  8. Form:表单容器,用于整合多个表单控件。
  9. Validator:用于表单数据的校验,支持自定义校验规则。
  10. ScrollView:支持滚动的容器,适用于内容超出屏幕的场景。

这些组件共同构成了HarmonyOS鸿蒙Next中完整的表单功能,满足输入、展示、校验和滚动等需求。

回到顶部