reactjs 选项卡 初学

 每次学习一个语言我都喜欢写下选项卡

html 页面很简单 除了引入的那些必要的库之外 只有这一个

<div id="text"></div>
CSS  我只做了一个背景样式的改变

<style type="text/css">
		.on{
			background: #ccc
		}
</style>
JS 我引用的 直接贴我JS 文件里边的代码

var Taba=React.createClass({
	getInitialState:function(){
		return{arr:[
			{"name":"tab1",
			"con":"第一个"},
			{"name":"tab2",
			"con":"第二个"},
			],
			key:0,
		
		}
	},
	handleClick(key,event){
		  this.setState({key:key});
		
		  
		
	},
	render(){
		var arrs =this.state.arr;
		var n =this.state.key
		var con=arrs[n].con
		return(
			<div>
			{
				arrs.map((arr,i)=>{
					return(							
						<span className={n==i?'on':""} key={i} onClick={this.handleClick.bind(this,i)}>{arr.name }</span>		
						)
				})
			}
			<div>{con}</div>
			</div>
			
			)
	} 
})
ReactDOM.render(
	<Taba/>,
	document.getElementById("text")
	)
遇到的问题吧 都是一些小问题 

1  在return里边写 逻辑要加{}

2 在做MAP  循环的时候要再循环的DIV 上加 key{i} 要不然会报错               react.js:19287 Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of `Taba`. See https://fb.me/react-warning-keys for more information.
 3 在写class 样式的时候那个判断 我出了点问题 。

思路 

其实很简单就是鼠标单击的时候传入key 值 然后根据key 值去判断con 的内容是什么  也是由key 去判断 需不需要添加样式



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值