FormControl API
想要学习更多组件属性和 CSS API,可以查阅 React FormControl 组件的 API 文档。
导入
import FormControl from '@mui/material/FormControl';
// 或
import { FormControl } from '@mui/material';
Provides context such as filled/focused/error/required for form inputs.
Relying on the context provides high flexibility and ensures that the state always stays
consistent across the children of the FormControl
.
This context is used by the following components:
- FormLabel
- FormHelperText
- Input
- InputLabel
You can find one composition example below and more going to the demos.
<FormControl>
<InputLabel htmlFor="my-input">Email address</InputLabel>
<Input id="my-input" aria-describedby="my-helper-text" />
<FormHelperText id="my-helper-text">We'll never share your email.</FormHelperText>
</FormControl>
⚠️ Only one InputBase
can be used within a FormControl because it create visual inconsistencies.
For instance, only one input can be focused at the same time, the state shouldn't be shared.
组件名称
在主题中,名称“MuiFormControl
”可用于提供默认属性(props),或者样式覆盖属性
原生(Native) 组件的属性也是可用的。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
children | node | The content of the component. | |
classes | object | Override or extend the styles applied to the component. See CSS API below for more details. | |
color | 'primary' | 'secondary' | 'error' | 'info' | 'success' | 'warning' | string | 'primary' | The color of the component. It supports both default and custom theme colors, which can be added as shown in the palette customization guide. |
component | elementType | The component used for the root node. Either a string to use a HTML element or a component. | |
disabled | bool | false | If true , the label, input and helper text should be displayed in a disabled state. |
error | bool | false | If true , the label should be displayed in an error state. |
focused | bool | false | If true , the component is displayed in focused state. |
fullWidth | bool | false | If true , the component will take up the full width of its container. |
hiddenLabel | bool | false | If true , the label is hidden. This is used to increase density for a FilledInput . Be sure to add aria-label to the input element. |
margin | 'dense' | 'none' | 'normal' | 'none' | If dense or normal , will adjust vertical spacing of this and contained components. |
required | bool | false | If true , the label will indicate that the input is required. |
size | 'medium' | 'small' | string | 'medium' | The size of the autocomplete. |
sx | Array<func | object | bool> | func | object | The system prop that allows defining system overrides as well as additional CSS styles. See the `sx` page for more details. | |
variant | 'filled' | 'outlined' | 'standard' | 'outlined' | The variant to use. |
ref
则会被传递到根元素中。CSS
规则名称 | 全局类名 | 描述 |
---|---|---|
root | .MuiFormControl-root | Styles applied to the root element. |
marginNormal | .MuiFormControl-marginNormal | Styles applied to the root element if margin="normal" . |
marginDense | .MuiFormControl-marginDense | Styles applied to the root element if margin="dense" . |
fullWidth | .MuiFormControl-fullWidth | Styles applied to the root element if fullWidth={true} . |
您可以使用组件自定义选项对组件进行个性化:
- 具备 全局类名.
- 在自定义主体中,设定一个规则名称作为组件的
styleOverrides
属性的一部分。