reactjs - 如何更改 NativeSelect 的 IconComponent 取决于它是否打开
问题描述
我正在自定义 NativeSelect(在 Material UI v3 中)。我想根据 NativeSelect 是否打开/展开来更改 IconElement 。NativeSelect
看来我不能使用,open
或onOpen
道具onClose
。
<NativeSelect
input={<InputBase
className={dropdownSelectStyle.rootInputBaseStyle}/>}
IconComponent={ExpandMore}
{...props}>
{
dropdownElements.map((currEntry: string): HTMLOptionElement => (
<option key={currEntry} value={currEntry}>
{currEntry}
</option>
))
}
</NativeSelect>
我希望IconComponent
这里是打开ExpandLess
时的图标,并在关闭时NativeSelect
变回。ExpandMore
NativeSelect
解决方案
NativeSelect在打开时不允许单击处理程序(正如您已经提到的)。但是,它确实允许在打开时进行一些 css 修改。
iconOpen .MuiNativeSelect-iconOpen 如果弹出窗口打开,则应用于图标组件的样式。
由于您要在打开时应用的图标只是关闭时图标的倒置版本,因此只需transform: rotate(180deg)
在打开时应用到图标即可。这样,您还可以在其上添加转换计时器以获得更平滑的效果。
推荐阅读
- visual-studio-2019 - Visual Studio 2019 在哪个位置(路径)创建 *.csproj.user 文件?
- python - 用numpy中的矩阵求和向量
- html - 解析错误,.HTML -> JSON 中的字符串,但 HTML 文件中有特殊字符
- javascript - Open Graph 标签和 Nuxt.js 的问题(产品?)
- sql - SQL - YTD 过滤器
- css - 为 svg 背景图标添加颜色
- antlr - ANTLR 语法中解析器和词法分析器规则的调用顺序是什么?
- javascript - 用户更改值时如何重置此条件下拉表单的状态
- css - 如何在 React Native 中使用三元运算符
- azure - 在没有 Azure Front Door 的情况下使用 Azure AD B2C 自定义域