Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何根据NativeSelect是否打开来更改其IconComponent

如何根据NativeSelect是否打开来更改其IconComponent
EN

Stack Overflow用户
提问于 2019-11-01 16:50:44
回答 2查看 327关注 0票数 1

我正在自定义NativeSelect (在Material UI v3中)。我想根据NativeSelect是否打开/展开来更改IconElement。在NativeSelect中,我似乎不能使用openonOpenonClose道具。

代码语言:javascript
运行
AI代码解释
复制
<NativeSelect
            input={<InputBase
                className={dropdownSelectStyle.rootInputBaseStyle}/>}
            IconComponent={ExpandMore}
            {...props}>
            {
                dropdownElements.map((currEntry: string): HTMLOptionElement => (
                    <option key={currEntry} value={currEntry}>
                        {currEntry}
                    </option>
                ))
            }

        </NativeSelect>

我希望这里的IconComponentNativeSelect打开时是ExpandLess图标,在NativeSelect关闭时改回ExpandMore图标。

EN

回答 2

Stack Overflow用户

发布于 2019-11-01 18:35:01

NativeSelect不允许在打开时使用单击处理程序(正如您已经提到的)。但是,它确实允许在打开时对css进行一些修改。

iconOpen .MuiNativeSelect-icon弹出窗口打开时应用于图标组件的打开样式。

由于您想要在打开时应用的图标只是关闭时图标的倒置版本,因此只需在图标打开时对其应用transform: rotate(180deg)即可。这样,您还可以在其上添加变换计时器以获得更平滑的效果。

票数 1
EN

Stack Overflow用户

发布于 2019-11-04 16:23:40

尽管使用了上面的建议,仍然有问题。我的代码

设置样式:

代码语言:javascript
运行
AI代码解释
复制
const useStyles: JSON = makeStyles({
    root: {
        backgroundColor: "#ffffff",
        borderWidth: 1,
        borderRadius: 0,
        borderColor: "#bfbfbf",
        borderStyle: 'solid',
        boxShadow: "0 1px 6px 0 rgba(0, 0, 0, 0.16)",
        minWidth: 279,
        "&$iconOpen": {
            transform: "rotate(180deg)"
        },
    },
    focused: {},
    iconOpen: {}
});

主代码:

代码语言:javascript
运行
AI代码解释
复制
function MyDropdownSelect(props: MyDropdownSelectPropsType): NativeSelect {
    const dropdownSelectStyle: JSON = useStyles();
    return (
        <NativeSelect
            className={dropdownSelectStyle.root}
            input={<InputBase/>}
            IconComponent={ExpandMore}
            {...props}
        >
            {
                dropdownElements.map((currEntry: string): HTMLOptionElement => (
                    <option key={currEntry} value={currEntry}>
                        {currEntry}
                    </option>
                ))
            }

        </NativeSelect>
    );
}

这不是应该起作用吗?

Codesandbox新增(2019年5月11日) -https://codesandbox.io/s/affectionate-kowalevski-rol3v?fontsize=14

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58662935

复制
相关文章
Python 嵌套列表展开
问题1:对于列表形如 list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]] 转化成列表 list_2 = [1, 2, 3, 4, 5, 6, 7, 8, 9] 的问题。
py3study
2020/01/08
3K0
AngularDart Material Design 列表 顶
它构成了选择和菜单组件的基础。 MaterialListComponent类充当提供样式和收集项事件的能力的列表的根节点。
南郭先生
2018/09/30
6890
python进阶-嵌套列表展开
本文讲解的是一个Python的进阶知识点:**如何将一个嵌套的大列表展开形成一个大列表。
皮大大
2023/08/25
4170
python进阶-嵌套列表展开
AngularDart Material Design 下拉列表 顶
material-dropdown-select组件结合了material-select和material-button-down的API。
南郭先生
2018/09/30
5.2K0
JSX onClick 和 HTML onclick 的区别
在 JSX 中可以通过 onClick 这样的方式给一个元素添加一个事件处理函数,当然,在 HTML 中也可以用 onclick (小写 c),但在 HTML 中直接书写 onclick 一直就是为人垢病的写法,网页应用开发界一直倡导的是用 jQuery 的方法添加事件处理函数,直接写 onclick 会带来代码混乱的问题。
Leophen
2021/07/08
1.8K0
Material Design — 网格列表(Grid lists)
自上次参加完回音分享会后,我下定决心要洗心革面乖乖打基础,于是开启了这个part,争取两个月不间断更新,写完Material Design与iOS中的组件(顺便学学英语),以便今后在使用的时候完全不虚
霖酱
2018/05/17
3.6K0
[iOS] 列表滑动展开隐藏头部HeaderView
首先看一下BiliBili客户端的视频浏览界面。默认界面Header完全展开,并且Header显示AV号(别乱想,就是视频编号了)以及播放按钮。滑动之后Header被压缩,按钮移到AV号左边。
wOw
2018/09/18
3.5K0
[iOS] 列表滑动展开隐藏头部HeaderView
关于安卓开发实现可展开的列表组件
三个布局文件 main.xml      childs.xml      groups.xml 一个java文件  List_lianxi.java main.xml文件代码 1 <?xml ver
听着music睡
2018/05/18
1.1K0
javascript中onclick(this)用法和onclick(this.value)用法介绍
2.onclick(this)代码详解 一般标签中会使用href和onclick两种方式来进行进行页面跳转或执行动作,但是小编一般都会使用onclick来进行执行Ajax函数进行跳转,并同时使用οnclick=”xxxxxx(this)”来传递动态参数:例子如下
全栈程序员站长
2022/07/08
1.9K0
用于查找子列表总和的 Python 程序
以下程序返回子列表的总和,即使用 for 循环返回给定开始和结束索引的元素总和 −
很酷的站长
2023/02/23
1.9K0
用于查找子列表总和的 Python 程序
用于列表下拉加载loading动画
一、效果图 弹跳加载 二、实现代码 <view class="bouncing-loader"> <view></view> <view></view> <view></view> </v
_kyle
2020/08/24
3.7K0
用于列表下拉加载loading动画
react onclick传递参数
onClick={this.Mallclose.bind(this,e,index)}
windseek
2019/01/02
2.9K0
emlog文章调用列表+今日更新红色标题+置顶单独代码
<?php //自己写的最新文章调用函数 date_default_timezone_set('Asia/Shanghai'); function aizhanyunblog_new($num){
用户8099761
2023/05/11
2180
Typecho无插件单独调用某个分类最新文章列表方法
昨天,老蒋在设置企业网站调用随机文章的时候可以随机出现已有的内容,但是有的公司企业网站是有人维护更新的,这里只可以用直接在首页某个位置调用某个更新分类的文章。这就没有必要用随机假装样子有在更新的了,人家是真的在更新文章。
老蒋
2021/12/24
8060
onclick与addEventListener区别
这次做项目遇到了这个问题,本来习惯性的每次都写的是addEventListener绑定click事件。但是当用addEventListener绑定了多次click事件的时候,引发了我的思考,这两者有区别吗?具体的事件分析可查看另一篇文章
全栈程序员站长
2022/09/14
1.6K0
jsp button onclick事件汇总
<input onclick="document.all.WebBrowser.ExecWB(1,1)" type="button" value="打开" name="Button1"> <input onclick="document.all.WebBrowser.ExecWB(4,1)" type="button" value="另存为" name="Button2"> <input onclick="document.all.WebBrowser.ExecWB(10,1)" type="button"
week
2018/08/27
2.3K0
Material的布局原则
Material Design 指南通过源自印刷领域的设计元素 – 例如排版、网格、空白、缩放、颜色,和图像 – 来建立层次结构和传达所要表达的含义,并专注于带给用户沉浸式的体验。Material Design 采用来自印刷设计领域的工具,如基准网格和结构模版,通过重复视觉元素,结构网格以及跨平台和屏幕尺寸的间距,促进不同环境下设计的一致性。这些布局可通过缩放来适应任何屏幕大小,这简化了创建可扩展应用的过程。
Jean
2018/10/30
1.1K0
Material的布局原则
select的onchange事件和onclick事件区别
一句话理解,onchange是当发生改变时触发事件,onclick当被点击时触发事件
JaneYork
2023/10/11
9150
select的onchange事件和onclick事件区别
select标签添加onclick()事件的兼容写法
以上代码片是可以在Firefox和IE9下运行的,但是它在我的360浏览器上就是无效的,究其原因还是IE版本的问题(存在兼容性问题), 也就是:老版本只能这样 <select onclick() ></select>
ZONGLYN
2019/08/08
7.9K0
点击加载更多

相似问题

反应材料UI包装TableRow

13

反应材料-UI与路由器

20

如何将<Link>反应路由器添加到材料表中?

32

在每个材料UI TableRow旁边添加IconButton组件

13

TableRow材料之间的间距-UI

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档