也许这只是一个基本问题,但到目前为止还没有找到任何合理的解释。我最近是react和使用 MUI 的初学者。我不太清楚什么时候使用 Input vs.Textfield
来构建表单?
查看文档,感觉就像TextField
是Input
可以做什么的超集,但不确定。MUI网站使用的实例TextField
和Input
两者没有说明一个比其他任何用例的好处。
请建议。
也许这只是一个基本问题,但到目前为止还没有找到任何合理的解释。我最近是react和使用 MUI 的初学者。我不太清楚什么时候使用 Input vs.Textfield
来构建表单?
查看文档,感觉就像TextField
是Input
可以做什么的超集,但不确定。MUI网站使用的实例TextField
和Input
两者没有说明一个比其他任何用例的好处。
请建议。
对于大多数用例,您应该使用TextField
而不是它委托给的低级组件(例如Input
)。
文档的相关部分在这里。
特别是这一行:
TextField 由较小的组件( FormControl、Input、FilledInput、InputLabel、OutlinedInput 和 FormHelperText)组成,您可以直接利用它们来显着自定义表单输入。
使用这些低级组件的主要原因是,如果您需要以某种不支持使用TextField
.
这是TextField
组件的简化定义:
<FormControl {...other}>
{label && (
<InputLabel {...InputLabelProps}>
{label}
</InputLabel>
)}
{select ? (
<Select {...SelectProps}>
{children}
</Select>
) : (
<Input {...InputProps} />
)}
{helperText && (
<FormHelperText {...FormHelperTextProps}>
{helperText}
</FormHelperText>
)}
</FormControl>
如您所见,TextField
不仅仅是一个Input
,它包括:
FormControl
:它只是一个上下文提供程序,用于将TextField
状态(焦点、错误、悬停...)传递给子项并确保它们保持一致。您通常不必直接使用此组件。
InputLabel
:的标签TextField
,Input
并没有对自己的一个,所以如果你想要一个标签添加到您的Input
,请使用TextField
。
FormHelperText
: 位于 下方的帮助文本Input
,用于描述TextField
或显示表单验证中的某些错误消息。
Input
: 输入本身。实际上有在不同的变体3个输入组件:Input
,OutlinedInput
并且FilledInput
其可以通过设置variant
支柱中TextField
。这是使用 的另一个原因TextField
,而不是查找和导入不同的输入组件,您只需设置变体属性即可TextField
知道要渲染什么。
Select
:TextField
可以是一个Select
或一个Input
。设置select
props以更改要选择的输入类型。
那么什么时候使用TextField
?在您想要显示Input
带有标签的表单中,并且有一种方法可以在干净的 API 中设置错误消息,这在大多数情况下都是如此。
什么时候使用Input
?当你并不需要所有的除了上面的东西输入,或当你有需要的极端定制和API的TextField
是不够的,你。