账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react中实现类似高亮的时候,如何移除其他的className?
    29
    0

    问题描述

    react项目中实现一个高亮的功能,点击这个DOM的时候,如何移除同级元素的className?

    问题出现的环境背景及自己尝试过哪些方法

    【环境】:数组循环是在父级中进行循环,循环出来的内容是在子组件中提供。(比如:<li>这个子组件是在父组件中循环出来的,但是<li>这里面的内容是写在子组件中的)

    【尝试过的方法】:
    1、采用高亮的方法;
    2、本来想既然高亮的在子组件中不行,那就在父组件中采用同样的方式去做,只是点击事件挂载在子组件的调用上。

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)
    方法一:

    子组件中
    constructor () {
        super();
        this.state = {
          active : 0
        }
      }
    handleClick = (event)=>{
        this.setState({active: parseInt(event.target.getAttribute('index'), 10)})
    }
    render() {...
        return (<div onClick={this.handleClick}>...</div>)
    }

    方法二:

    render (){
        let items = list.map(()=>{
            return <TargetSource onClick={this.handleClick} />
        })
        return (
            ...
            xx ? xxx: {items}
        )
    }
    

    你期待的结果是什么?实际看到的错误信息又是什么?

    【期待的结果】:类似高亮

    【实际看到的错误】:
    方法一:点击的时候给当前元素加上了高亮的效果,但是其他兄弟元素的高亮效果没有去掉
    方法二:点击无任何反应

    【后话】:没学React就开始做React项目,只能自己边做边学,所以是个小白,有不对的地方还请指教,不喜勿喷,谢谢。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 卿如红尘 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部