文章详情页
javascript - react如何不通过state去修改classname?
浏览:76日期:2023-02-13 17:49:59
问题描述
如题,react中怎么样可以不用下面这种方式去改变class,直接用原生js去改变class?
<p className={ this.state.*** ? class1 : class2 }></p>
问题解答
回答1:<p ref={(p)=>{this.getDom = p}}></p>...// 可以在一个事件中通过this.getDom获取当前元素,再通过className设置this.getDom.className = class1回答2:
原生 JS 操作 DOM 的行为是不推荐的,如果非常需要这个能力,可以通过 ReactDOM 的 findDOMNode 方法去获取到 DOM 节点的引用。例如这里:https://facebook.github.io/re...
但这确实是一个【打开了安全仓口】的潜在风险行为,通过原生 JS 直接修改 DOM 的操作是冗余、不安全和不符合 React 思想的,建议以 JSX 的方式考虑所要解决的问题。
回答3:肯定是有其他方法可以做到的,可以考虑classnames的包,楼上用的ref也是一个常用的方法
标签:
JavaScript
相关文章:
1. android - java 泛型不支持数组,那么RxJava的Map集合有什么方便的手段可以定义获得一串共同父类集合数据呢?2. javascript - vue 移动端的input 数字输入优化3. java - mongodb分片集群下,count和聚合统计问题4. java - 自己制作一个视频播放器,遇到问题,用的是内置surfaceview类,具体看代码!5. 服务器端 - 采用nginx做web服务器,C++开发应用程序 出现拒绝连接请求?6. 为什么我ping不通我的docker容器呢???7. 关于docker下的nginx压力测试8. python - pandas按照列A和列B分组,将列C求平均数,怎样才能生成一个列A,B,C的dataframe9. javascript - 有什么兼容性比较好的办法来判断浏览器窗口的类型?10. java - 静态属性中的赋值和静态代码块中的赋值有什么区别?
排行榜
