...
this.state = {
// 全部数据
addressJobs: [
{
address: '北京',
jobs: ['北京职位1', '北京职位2', '北京职位3', '北京职位4', '北京职位5', '北京职位6', '北京职位7', '北京职位8', '北京职位9']
},
{
address: '上海',
jobs: ['上海职位1', '上海职位2', '上海职位3', '上海职位4', '上海职位5', '上海职位6', '上海职位7', '上海职位8', '上海职位9']
},
{
address: '广州',
jobs: ['广州职位1', '广州职位2', '广州职位3', '广州职位4', '广州职位5', '广州职位6', '广州职位7', '广州职位8', '广州职位9']
},
{
address: '其他',
jobs: ['其他职位1', '其他职位2', '其他职位3', '其他职位4', '其他职位5', '其他职位6', '其他职位7', '其他职位8', '其他职位9']
},
],
jobssss: [],// 单独取出jobs渲染职位
}
.....
// 初始化的时候选中第一个
componentDidMount() {
document.getElementsByClassName('adress-item')[0].className = 'adress-item active';
this.setState({
jobssss: this.state.addressJobs[0].jobs
})
}
// tab切换
adressNavClick = (index) => {
document.getElementsByClassName('adress-item')[index].className = 'adress-item active';
this.state.addressJobs.forEach((el,item) => {
if (item === index) {
this.setState({
jobssss: el.jobs
})
} else {
document.getElementsByClassName('adress-item')[item].className = 'adress-item';
}
})
}
......
{/* dom结构 */}
<div className='recruit-content'>
<ul className='adress-nav'>
{this.state.addressJobs ? this.state.addressJobs.map((el, index) => {
return (<li className='adress-item' key={index} onClick={() => {this.adressNavClick(index)}}>{el.address}</li>)
}) : ''}
</ul>
<div className='jobs-wrapper'>
<ul className='jobs-list clearfloat'>
{this.state.jobssss ? this.state.jobssss.map((el, index) => {
return (<li className='jobs-item' key={index}>{el}</li>)
}) : ''}
</ul>
</div>
</div>
......
相关文章
- 04-12react实现tab切换效果
- 04-12三行代码实现TabLayout+ViewPager的Tab滑动效果,从封装到开源
- 04-12JS实现 Tab栏切换案例
- 04-12Flutter的AnimatedDefaultTextStyle实现文本样式的动画过渡切换效果
- 04-12WP8 NavigationInTransition实现页面切换效果
- 04-12jquary实现tab栏切换(附上代码)
- 04-12React+ts+stories实现简单的切换按钮【ToggleBotton/ToggleBox]
- 04-12如何在react中实现一个table切换?
- 04-1219 Flutter 自定义AppBar 定义顶部Tab切换 底部Tab结合顶部Tab实现类似头条页面布局(27分36秒)
- 04-12利用cube-tab-bar 搭配cube-ui的组件(cube-slide ,cube-scroll)来做出App屏幕切换,Tab跟随页面变化效果