Back to Nocobase

VariableInput

docs/docs/cn/shared-components/form/variable-input.md

2.1.261.9 KB
Original Source

VariableInput

VariableInput 用来输入字面量和变量表达式。变量来自 flowEngine.context 的 meta tree,比如 $env$user 或插件自己追加的业务变量。

它是单行输入。变量会显示成 pill,适合标题、主题、URL 片段这类短文本。

tsx
tsx
import { VariableInput } from '@nocobase/client-v2';

<Form.Item name="subject" label={t('Subject')}>
  <VariableInput
    namespaces={['$env']}
    extraNodes={[
      { name: '$resetLink', title: t('Reset password link'), type: 'string', paths: ['$resetLink'] },
    ]}
  />
</Form.Item>;

API

参数类型说明
valuestring当前值
onChange(value: string) => void值变化回调
disabledboolean是否禁用
placeholderstring占位文字
addonBeforeReact.ReactNode前置内容
namespacesstring[]限定可选的顶层命名空间
extraNodesMetaTreeNode[]追加局部变量节点
convertersVariableHybridInputConverters自定义 path 和字符串的转换
delimiters[string, string]变量分隔符,默认 ['{{', '}}']
classNamestring自定义 class
styleReact.CSSProperties自定义样式

分隔符

默认分隔符是 {{}},对应 NocoBase 服务端模板的 HTML 转义输出。如果字段最终按 HTML 渲染,且变量展开后不能被转义,可以传三花括号:

tsx
<VariableInput delimiters={['{{{', '}}}']} />

:::warning 注意

三花括号会让变量按未转义内容输出。只有在确认渲染链路已经处理安全问题时再使用。

:::

相关链接