美文网首页
react循环

react循环

作者: 我爱阿桑 | 来源:发表于2020-06-26 22:33 被阅读0次
  • react的循环就是将数组拼接成jsx对象,在里面添加事件
   import React from  'react'
   import ReactDOM from  'react-dom'

   let arr=['小红','小白','小黑','小紫']
   let arrHtml=[<li>小红</li>,<li>小白</li>,<li>小黑</li>,<li>小紫</li>,]

  class Mjc extends React Component{
         constructor(props){
              super(props)
         }
         render(){
               return(
                      <div>
                             <ul>{arrHtml}</ul>
                      </div>
               )
         }
   
   }


  • 使用数组map方法,对每一项数据按照jsx的形式进行加工,最终得到一个每一项都有jsx对象的数组,在将数组渲染到模板中。
  //普通循环
    let listArr=this.state.list.map((item,index)=>{
        return (
            <li key={index}    onClick={(e)=>{this.clickEvent(index,item.title.e)}}>
                <div>{item.title}</div>
                <div>{item.content}</div>
            </li>
        )
    })
// 函数式组件循环
   function ListItem(props){
         return(
               <li>
                    <div>{props.data.title}</div>
                     <div>{props.data.content}</div>
               </li>
         )
   }
   let listArr=this.state.list.map((item, index)=>{
        return (
           <ListItem  data={item}  key={index} />
        )
    })
     render(){
         return(
              <div>
                  <ul>{listArr}</ul>
              </div>
         )
    }
  clikcEvent=(index,title,e)=>{
       console.log(index ,title,e)
}
 

变成函数式组件,因为有交互(点击事件),所以推荐使用类组件

   function ListItem(props){
         return(
               <li>
                    <div>{props.data.title}</div>
                     <div>{props.data.content}</div>
               </li>
         )
   }

变成类组件

   class ListItem  extends React Component{
      constructor(props){
         super(props)
     }
     render(){
          return(
                 <li  onClick={(e)=>{this.clikcEvent(this.props.index,this.props.data.title,e)}}>
                    <div>{this.props.data.title}</div>
                     <div>{this.props.data.content}</div>
               </li>
        )
     }
  }
  clikcEvent=(index,title,e)=>{
       console.log(index ,title,e)
}

相关文章

网友评论

      本文标题:react循环

      本文链接:https://www.haomeiwen.com/subject/ihgufktx.html