我目前正在尝试使用 Material UI 构建一个带有图标作为输入装饰的文件上传输入字段。我希望能够单击该图标来上传文件。
按照此处的 MUI 文档:输入装饰,我尝试遵循确切的格式,除了在演示中使用 IconButton 而不是密码可见性图标。
这是我的代码示例:
<FormControl className={classes.formControl}>
<InputLabel htmlFor="upload-script">Sim Script</InputLabel>
<Input
id="upload-script"
type="file"
value={values.script}
onChange={() => handleChange('script')}
endAdornment={
<InputAdornment position="end">
<IconButton aria-label="upload">
<PublishIcon /> // (here is my icon)
</IconButton>
</InputAdornment>
}
/>
</FormControl>
这行得通,但结果根本不是我想要的——这是它在浏览器中的截图:
您可以在右侧一直看到我的上传图标,但输入字段显然有自己的上传按钮和占位符文本(“未选择文件”)。
在网上看了一下,看到这里有一个建议:(类似 StackOverflow 的帖子)说我们应该添加style: {{ display: none }}
到Input
组件中,并添加component="span"
为 IconButton 的属性。但是,当我尝试这样做时,浏览器会为我们提供以下内容:
(这是一直滚动...我的源图标不见了,输入字段下面没有行分隔符,间距明显搞砸了...)
显然,这些都不是我想要的哈哈。有人可以帮忙吗??(我希望这个描述足够好......)
太感谢了!!
-
但我希望文本字段有一行!我希望它看起来与“Sim Binary”文本字段完全一样,只是右侧有一个上传图标而不是下拉箭头。