• react组件选项卡demo


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script src="../node_modules/react/umd/react.development.js"></script>
        <script src="../node_modules/react-dom/umd/react-dom.development.js"></script>
        <script src="../node_modules/babel-standalone/babel.js"></script>
    </head>
    <body>
        <div id="app">
    
        </div>
        <script type="text/babel">
            let arr = [1,2,3,4];
            // 根组件默认拿到全局变量为data的值 在子组件传值直接传值进行调用
           class List3 extends React.Component{//必须是大写的首字母
               constructor(props){ //构造函数传参
                   super(props);    //调用所有原型上的属性来实现props传值
                   this.state = {
                       n:0
                   }
               }
               inc(ind){
                    // 当调用时不绑定this时,this指向调用的window,由于是严格模式所以指向undefined
                       this.setState({
                           n:ind
                       })
                   };
               render(){
                   console.log(this);//符号必须是分号不能是逗号
                   let {data} = this.props;
                   let {n} = this.state;
                   return(
                                data.map((item,index)=>{
                                return (
                                    <div key={index} style={{color:n===index?'red':null}} 
                                    onClick={this.inc.bind(this,index)}>{item}</div> 
                                    //这里的this指向的是实例 但在再调用时 由于是window.onclick调用
                                    // 导致内部this.setState拿不到this指向。又由于es6严格模式所以不会指向winodow而是undefined
                                    // 所以就会报错 不存在这个属性
                                )
                            }
                        )
                   )
               }
           }
    
           ReactDOM.render(
               <div>
                    <List3 data={arr}/>
               </div>,
               document.getElementById('app')
           )
        </script>
    </body>
    </html>
  • 相关阅读:
    Duplicate keys detected: '0'. This may cause an update error.
    better-scroll在移动端绑定click事件失效
    vue-awesome-swiper轮播插件的使用方法及问题。
    可运行的js代码
    CSS3表达式calc( )
    webstorm破解教程
    box-decoration-break属性
    shiro自定义密码校验器
    获取select中option被选中的值
    SpringBoot开发验证码功能
  • 原文地址:https://www.cnblogs.com/l8l8/p/9454317.html
Copyright © 2020-2023  润新知