记一次Bug

向右看齐 2022-04-11 14:27 532阅读 0赞

这个Bug查了好几个小时…
如此愚蠢的一个Bug…

给自己跪了.

  1. <Menu
  2. onClick={this.getComponent}
  3. mode="horizontal"
  4. selectedKeys={[currentPage]}
  5. style={
  6. { lineHeight: '62px', borderBottom: '0px' }}
  7. >
  8. <Menu.Item key="video" className={some==='video?"selected":""} ><Icon type="caret-right" /></Menu.Item>
  9. <Menu.Item key="upload" className={some==='upload?"selected":""} ><img src={video} style={
  10. { width: '20px', height: '20px', marginTop: '-7px' }} /></Menu.Item>
  11. <Menu.Item key="settings" ><Icon type="setting" /></Menu.Item>
  12. <Menu.Item key="profile" ><Icon type="user" /></Menu.Item>
  13. </Menu>

场景是,上述代码是父组件,点击upload 图标进入他对应的子组件,在子组件中某个操作完成之后自动转入video页面. 此时对应的图标也应由upload 变化到 video .所以,我用了

  1. className={some==='upload'?"selected":""}

动态改变some的值,来保证只会有一个图标被选上.

但是,无论我如何改变some的值,从upload 跳入video之后,两个图标都会被选上.
我表示百思不得其解.以为是渲染的问题,但是打断点发现并没有问题,直到我在”selected”前面加上一个参数:

  1. className={some==='video'?"video selected":""}
  2. className={some==='upload'?"upload selected":""}

发现跳转之后的结果是:

  1. className="video selected"
  2. className="selected"

我才发现…我是个大sb…
ant.design menu组件,提供一个属性 selectedKeys={[this.state.current]}用来给menu.item的选中项添加selected的classname的…所以,我在多此一举个什么劲啊,虽然我人为的把upload selected 的名称去掉了,但是它本身还有一个啊…

发表评论

表情:
评论列表 (有 0 条评论,532人围观)

还没有评论,来说两句吧...

相关阅读

    相关 生产环境的严重bug

    在系统部署生产环境后, 在十天左右就会出现系统反应慢, 堆爆了,cpu占用百分百的情况。 在重启tomcat后情况就恢复了。 在经过详细的 跟踪, 线程dump, 堆dump

    相关 Layui的bug

    当页面高度不够的时候,时间选择器会出现弹不出来的情况,代码中添加 ,trigger: ‘click’,以点击的方式触发即可. ![在这里插入图片描述][watermar