我们正在使用Material UI中的OutlinedInput
,但不会呈现文本标签。如何解决这个问题?
import { Grid, OutlinedInput } from '@material-ui/core';
<Grid container>
<Grid item xs={12}>
<OutlinedInput
label="invisible label"
placeholder="HELLO, STACKOVERFLOW!"
value={value}
onChange={(e) => handleValueChange(e.target.value)}
fullWidth
/>
</Grid>
</Grid>
呈现的不是预期的“不可见标签”文本,而是空白区域(左上角):
4条答案
按热度按时间cld4siwp1#
就像@丹尼尔L提到的,你必须在
FormControl
组件中使用InputLabel
组件,但是除了他的答案之外-我必须在我的OutlinedInput
组件上添加一个label
属性,这样输入上的轮廓就不会与我的标签重叠。不带label属性的代码:
使用label属性编写代码:
svdrlsy42#
我不认为这个组件是用来单独使用的。在MUI文档中,它主要用作
TextField
等其他组件的扩充如果你检查开发工具中的样式,看起来像是CSS属性
visibility: hidden
导致了这个问题。事实上,如果您删除该样式,您将看到标签工作正常。但是,如果您已经使用此组件构建了大部分应用程序,并且需要显示该标签,则只需使用MUI的样式解决方案(如
makeStyles
)覆盖它。此外,使用notched
prop为其分配空间p8h8hvxi3#
我遇到了同样的问题,我将OutlinedInput Package 到FormControl元素中,并将InputLabe组件作为标签附加,这解决了我的问题。
nhhxz33t4#
对此的快速答案基本上是将组件 Package 在
FormControl
下,并在OutlinedInput
组件之上添加InputLabel
。根据您的代码,它应该看起来像这样: