zoukankan      html  css  js  c++  java
  • react 给选中的li添加样式

    思路:使用事件委托,
    关键:获取到的index必须转为数字,因为它是字符串
    handleClick = (e) => {
    const nodeName = e.target.nodeName.toUpperCase()
    let tag = e.target;
    if (nodeName === 'LI') {
    let index = parseInt(tag.getAttribute('index'))
    this.setState({
    currentIndex: index
    })
    }
    }


    import React from 'react'
    import './nav.scss'

    class NavCom extends React.Component {
    constructor(props) {
    super(props)
    this.state = {
    currentIndex: 0
    }
    }
    sestCurrentStyle = (index) => {
    return this.state.currentIndex === index ? 'current' : ''
    }
    handleClick = (e) => {
    const nodeName = e.target.nodeName.toUpperCase()
    let tag = e.target;
    if (nodeName === 'LI') {
    let index = parseInt(tag.getAttribute('index'))
    this.setState({
    currentIndex: index
    })
    }
    }
    render() {
    const navList = this.props.navList
    return (
    <div className='nav-wrap' onClick={(e)=>this.handleClick(e)}>
    {
    navList && navList.map( (item, index) => {
    return (
    <li key={index} index={index} className={this.state.currentIndex === index ? 'current' : ''}>{item}</li>
    )
    })
    }
    </div>
    )
    }
    }
    export default NavCom
  • 相关阅读:
    面向对象(6day)
    pycharm使用问题总结
    docker学习(一)ubuntu上安装docker
    docker指令
    docker简单使用
    使用Docker搭建多人使用GPU服务器
    ubuntu常用指令
    高斯滤波
    ubuntu创建个人账户
    第一次使用SSE指令集
  • 原文地址:https://www.cnblogs.com/liangshuang/p/9237552.html
Copyright © 2011-2022 走看看