ProComponents, templates & AI tooling
2.3k

Description 描述

用于为表单字段等提供无障碍说明与辅助文案的文本组件。

导入

import { Description } from 'heroui-native';

结构

<Description>...</Description>
  • Description:以弱化样式展示说明或辅助文案;可通过 nativeID 与表单字段关联以支持无障碍。

用法

基础用法

使用默认弱化样式展示说明文字。

<Description>This is a helpful description.</Description>

与表单字段组合

使用 nativeID 为表单字段提供可关联的说明。

<TextField>
  <Label>Email address</Label>
  <Input
    placeholder="Enter your email"
    keyboardType="email-address"
    autoCapitalize="none"
  />
  <Description nativeID="email-desc">
    We'll never share your email with anyone else.
  </Description>
</TextField>

无障碍关联

通过 nativeIDaria-describedby 将说明与字段关联,便于读屏。

<TextField>
  <Label>Password</Label>
  <Input
    placeholder="Create a password"
    secureTextEntry
    aria-describedby="password-desc"
  />
  <Description nativeID="password-desc">
    Use at least 8 characters with a mix of letters, numbers, and symbols.
  </Description>
</TextField>

非法态时隐藏

使用 hideOnInvalid 控制字段非法时是否隐藏说明。

<TextField isInvalid={isInvalid}>
  <Label>Email</Label>
  <Input placeholder="Enter your email" />
  <Description hideOnInvalid>
    We'll never share your email with anyone else.
  </Description>
  <FieldError>Please enter a valid email address</FieldError>
</TextField>

hideOnInvalidtrue 时,字段非法会隐藏说明;为 false(默认)时非法仍显示说明。

示例

import { Description, Input, Label, TextField } from 'heroui-native';
import { View } from 'react-native';

export default function DescriptionExample() {
  return (
    <View className="flex-1 justify-center px-5 gap-8">
      <TextField>
        <Label>Email address</Label>
        <Input
          placeholder="Enter your email"
          keyboardType="email-address"
          autoCapitalize="none"
        />
        <Description nativeID="email-desc">
          We'll never share your email with anyone else.
        </Description>
      </TextField>
      <TextField>
        <Label>Password</Label>
        <Input placeholder="Create a password" secureTextEntry />
        <Description nativeID="password-desc">
          Use at least 8 characters with a mix of letters, numbers, and symbols.
        </Description>
      </TextField>
    </View>
  );
}

更多示例见 GitHub 仓库

API 参考

Description

proptypedefaultdescription
childrenReact.ReactNode-说明文本内容
classNamestring-额外 class
nativeIDstring-无障碍用 native ID,与 aria-describedby 等配合关联字段
isInvalidboolean-是否处于非法态(可覆盖上下文)
isDisabledboolean-是否禁用态(可覆盖上下文)
hideOnInvalidbooleanfalse非法时是否隐藏说明
animationDescriptionAnimation | undefined-说明显隐等过渡的动画配置
...TextPropsTextProps-支持 React Native Text 的全部标准属性

本页目录