reactjs - Material UI OutlinedInput 标签不可见

标签 reactjs input react-tsx react-material

我们正在使用 OutlinedInput 来自 Material UI,但不呈现文本标签。如何解决这个问题?

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>
而不是预期的“不可见标签”文本,而是呈现一个空白区域(左上角):
demo screenshot

最佳答案

我不认为这个组件是用来单独使用的。在 MUI 文档中,它主要用作其他组件的扩充,例如 TextField

<TextField id="outlined-basic" label="Outlined" variant="outlined" />
如果您检查开发工具中的样式,它看起来像 CSS 属性 visibility: hidden导致这个问题。事实上,如果您删除该样式,您将看到该标签有效。
enter image description here

但是,如果您已经使用此组件构建了大部分应用程序并且需要显示该标签,只需使用 MUI 的样式解决方案(例如 makeStyles)覆盖它即可。 .此外,使用 notched prop 为其分配空间
const useStyles = makeStyles({
  customInputLabel: {
    "& legend": {
      visibility: "visible"
    }
  }
});

export default function App() {
  const classes = useStyles();

  return (
    <div className="App">
      <Grid container>
        <Grid item xs={12}>
          <OutlinedInput
            classes={{ notchedOutline: classes.customInputLabel }}
            label="visible label"
            placeholder="HELLO, STACKOVERFLOW!"
            fullWidth
            notched
          />
        </Grid>
      </Grid>
    </div>
  );
}
Edit musing-morning-sqn5q

关于reactjs - Material UI OutlinedInput 标签不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62261164/

相关文章:

python - 如何在 Python 中使用用户输入调用方法

reactjs - webpack sass-loader 不生成类选择器样式

reactjs - 在 react 查询中处理未经授权的请求

javascript - 使用 Webpack 进行仅调试页面

javascript - 检查 JavaScript 中的输入是否为空失败

javascript - 我可以一次性将其转换为长度吗?

html - contenteditable div 内的文件输入在 FireFox 上不起作用

reactjs - 如何使用 Next.js 中的门户来获取直接父容器之外的子元素?

reactjs - 根据条件渲染其中一个 child