UNPKG

zarm

Version:

基于 React 的移动端UI库

127 lines (108 loc) 4.85 kB
# CustomInput 自定义输入框 ## 基本用法 ```jsx import { useState, useRef } from 'react'; import { CustomInput, List, Button } from 'zarm'; const Demo = () => { const focusInput = useRef(); const [value, setValue] = useState(''); return ( <List> <List.Item title="数字"> <CustomInput ref={focusInput} type="number" placeholder="type is number" value={value} onChange={(value) => { setValue(value); console.log(`onChange: ${value}`); }} /> </List.Item> <List.Item title="金额"> <CustomInput type="price" placeholder="type is price" defaultValue="12.00" /> </List.Item> <List.Item title="身份证"> <CustomInput type="idcard" maxLength={18} placeholder="type is idcard" /> </List.Item> <List.Item> <Button size="xs" theme="primary" onClick={() => { focusInput.current.focus(); }} > click to focus the first input </Button> </List.Item> </List> ); }; ReactDOM.render(<Demo />, mountNode); ``` ## 上下结构 ```jsx import { CustomInput, List } from 'zarm'; ReactDOM.render( <List> <List.Item> <CustomInput label="金额" type="price" placeholder="请输入金额" /> </List.Item> </List>, mountNode, ); ``` ## 只读状态 ```jsx import { CustomInput, List } from 'zarm'; ReactDOM.render( <List> <List.Item> <CustomInput readOnly type="price" defaultValue="12.00" /> </List.Item> </List>, mountNode, ); ``` ## 禁用状态 ```jsx import { CustomInput, List } from 'zarm'; ReactDOM.render( <List> <List.Item> <CustomInput disabled type="price" value="12.00" /> </List.Item> </List>, mountNode, ); ``` ## API | 属性 | 类型 | 默认值 | 说明 | | :----------- | :-------------------------------- | :------- | :----------------------------------------------------------------------- | | label | ReactNode | - | 标签栏内容 | | type | string | 'number' | 类型,可选值 `number`、`idcard`、`price` | | value | number \| string | - || | defaultValue | number \| string | - | 初始值 | | disabled | boolean | false | 是否禁用 | | readOnly | boolean | false | 是否只读 | | autoFocus | boolean | false | 是否自动获取焦点 | | maxLength | number | - | 输入字数上限 | | clearable | boolean | false | 是否显示清除按钮。必须为受控组件(属性包含 value、onChange)时方可生效。 | | onChange | (value: number \| string) => void | - | 值变化时触发的回调函数 | ## CSS 变量 | 属性 | 默认值 | 说明 | | :------------------ | :--------------------------------- | :----------------- | | --color | 'var(--za-color-text)' | 字体颜色 | | --font-size | 'var(--za-font-size-md)' | 字体大小 | | --height | '28px' | 输入框高度 | | --line-height | '28px' | 输入框行高 | | --label-font-size | 'var(--za-font-size-sm)' | 标签字体大小 | | --placeholder-color | 'var(--za-color-text-placeholder)' | 占位符字体颜色 | | --disabled-color | 'var(--za-color-text-disabled)' | 禁用状态下字体颜色 | | --clear-icon-size | '16px' | 清除按钮大小 | | --clear-icon-color | '#ccc' | 清除按钮颜色 | | --cursor-height | '20px' | 光标高度 | | --cursor-width | '2px' | 光标宽度 | | --cursor-color | '#597cf6' | 光标颜色 |