鍍金池/ 問答/HTML/ 在react項(xiàng)目中,這段代碼有多個div,我希望能優(yōu)化下這段代碼,請問如何修改?

在react項(xiàng)目中,這段代碼有多個div,我希望能優(yōu)化下這段代碼,請問如何修改?

<div className={'video'}>
                        <div
                            className={'allTasks fl'}
                            style = {
                                this.state.current === 0 ? changeColor : changeColor02
                            }
                            onClick={(event) => this.handleClickLi(0, event)}
                        >
                            全部任務(wù)
                        </div>
                        <div
                            className={'handleVideo fl'}
                            onClick={(event) => this.handleClickLi(1, event)}
                            style = {
                                this.state.current === 1 ? changeColor : changeColor02
                            }
                        >
                            待處理視頻
                        </div>
                        <div
                            className={'passVideo fl'}
                            onClick={(event) => this.handleClickLi(2, event)}
                            style = {
                                this.state.current === 2 ? changeColor : changeColor02
                            }
                        >
                            已通過視頻
                        </div>
                        <div
                            className={'misdeedVideo fl'}
                            onClick={(event) => this.handleClickLi(3, event)}
                            style = {
                                this.state.current === 3 ? changeColor : changeColor02
                            }
                        >
                            違規(guī)視頻
                        </div>
                        <div
                            className={'dataAnalysis fl'}
                            onClick={(event) => this.handleClickLi(4, event)}
                            style = {
                                this.state.current === 4 ? changeColor : changeColor02
                            }
                        >
                            數(shù)據(jù)分析
                        </div>
                    </div>
回答
編輯回答
凝雅

前面的答案都沒有將classNamestyle處理。

export default () => {
  const divList = [{clazz: 'allTasks', name: '全部任務(wù)'}, {clazz: 'handleVclazzeo', name: '待處理視頻'}, {clazz: 'passVclazzeo', name: '已通過視頻'}, {clazz: 'misdeedVclazzeo', name: '違規(guī)視頻'}, {clazz: 'dataAnalysis', name: '數(shù)據(jù)分析'}];

  return (
    <div className={'vclazzeo'}>
      {
        divList.map((div, index) => {
          return (
            <div
              className={`${div.clazz} fl`}
              style={
                this.state.current === index ? changeColor : changeColor02
              }
              onClick={(event) => this.handleClickLi(index, event)}
            >
              {div.name}
            </div>
          );
        })
      }
    </div>
  );
}
2017年7月17日 05:01
編輯回答
疚幼

將重復(fù)代碼抽成組件是最基本的重構(gòu)方法,直接看代碼好了

const list = [ { name: "全部任務(wù)" },{ name: "待處理視頻" },{ name: "已通過視頻" },{ name: "違規(guī)視頻" } ]
const block =(current, name) => <div
       className={'misdeedVideo fl'}
       onClick={(event) => this.handleClickLi(3, event)}
       style = {this.state.current === current ? changeColor : changeColor02}
        >
          {name}
</div>

render() {
    return <div>
        {
            list.map((item))=> block(this.state.current, item.name)
        }
    </div>
    
}
2018年2月14日 18:06
編輯回答
涼汐
// datalist
const dataList = [
    {
        name: '全部任務(wù)'
    },
    {
        name: '待處理視頻'
    },
    {
        name: '已通過視頻'
    },
    {
        name: '違規(guī)視頻'
    },
    {
        name: '數(shù)據(jù)分析'
    }
]

// map
dataList.map((item, index) => {
    const Props = {
        className: 'allTasks fl',
        style: this.state.current === index ? changeColor : changeColor02,
        onClick: e => this.handleClickLi(index, e)
    } 
    return <div {...Props}>{item.name}</div>
})
2017年1月4日 18:20
編輯回答
厭惡我
const list = [ { name: "全部任務(wù)" },{ name: "待處理視頻" },{ name: "已通過視頻" },{ name: "違規(guī)視頻" } ]
...
{list.map((item))=> {
    return (
        <div
           className={'misdeedVideo fl'}
           onClick={(event) => this.handleClickLi(3, event)}
           style = {this.state.current === 3 ? changeColor : changeColor02}
            >
              {item.name}
        </div>
    )
    }
}

至于那些參數(shù)一樣的道理

2018年5月17日 22:22