ProComponents, templates & AI tooling
2.3k

LinkButton 链接按钮

幽灵样式按钮,无高亮按压反馈,适合行内链接式交互。

导入

import { LinkButton } from 'heroui-native';

结构

<LinkButton>
  <LinkButton.Label>...</LinkButton.Label>
</LinkButton>
  • LinkButton:根级可按压容器。内部渲染 variant="ghost"Button,并强制关闭高亮反馈;使用者无法覆盖上述行为。
  • LinkButton.Label:链接按钮文字,继承父级上下文中的尺寸与变体样式。

用法

基础用法

行内链接风格文字,响应按压。

<LinkButton onPress={handlePress}>了解更多</LinkButton>

尺寸

使用 size 控制文字尺寸。

<LinkButton size="sm">

</LinkButton>

<LinkButton size="md">

</LinkButton>

<LinkButton size="lg">

</LinkButton>

禁用状态

禁用后不可交互。

<LinkButton isDisabled>已禁用的链接</LinkButton>

自定义样式

在根与 Label 上使用 className

<LinkButton className="px-2">
  <LinkButton.Label className="text-accent underline">
    样式化链接
  </LinkButton.Label>
</LinkButton>

与正文混排

与普通文字混排,用于条款、政策或上下文导航。

<View className="flex-row flex-wrap">
  <Text className="text-sm text-muted">我同意 </Text>
  <LinkButton size="sm" onPress={handleTermsPress}>
    <LinkButton.Label className="text-accent">
      服务条款
    </LinkButton.Label>
  </LinkButton>
  <Text className="text-sm text-muted"> 与 </Text>
  <LinkButton size="sm" onPress={handlePrivacyPress}>
    <LinkButton.Label className="text-accent">隐私政策</LinkButton.Label>
  </LinkButton>
</View>

示例

import { Button, Checkbox, ControlField, LinkButton } from 'heroui-native';
import React from 'react';
import { Alert, View, Text } from 'react-native';

export default function LinkButtonExample() {
  const [isAgreed, setIsAgreed] = React.useState(false);

  const handleTermsPress = () => Alert.alert('条款', '跳转至服务条款');
  const handlePrivacyPress = () =>
    Alert.alert('隐私', '跳转至隐私政策');

  return (
    <View className="flex-1 px-5 items-center justify-center">
      <View className="w-full max-w-xs gap-6">
        <ControlField
          isSelected={isAgreed}
          onSelectedChange={setIsAgreed}
          className="items-start"
        >
          <ControlField.Indicator>
            <Checkbox className="mt-0.5" />
          </ControlField.Indicator>
          <View className="flex-row flex-wrap flex-1">
            <Text className="text-sm text-muted">我同意 </Text>
            <LinkButton size="sm" onPress={handleTermsPress}>
              <LinkButton.Label className="text-accent">
                服务条款
              </LinkButton.Label>
            </LinkButton>
            <Text className="text-sm text-muted"> 与 </Text>
            <LinkButton size="sm" onPress={handlePrivacyPress}>
              <LinkButton.Label className="text-accent">
                隐私政策
              </LinkButton.Label>
            </LinkButton>
          </View>
        </ControlField>
        <Button isDisabled={!isAgreed}>注册</Button>
      </View>
    </View>
  );
}

更多示例见 GitHub 仓库

API 参考

LinkButton

继承 Button 的全部属性,variant(内部固定为 ghost)。

内部强制行为:

overridevaluedescription
variantghost始终为 ghost,不可修改
highlightfalse高亮反馈关闭,不可修改
classNameh-auto p-0移除默认按钮高度与内边距

LinkButton.Label

Button.Label 等价,属性相同。

本页目录