繁体   English   中英

使用ES6原型方法映射在React中没有呈现

[英]Using ES6 prototype method map rendered nothing in React

我的地图方法有什么问题吗?

var App = React.createClass({
   getInitialState(){
     return {
       items:[1,2,3]
     }
   },
   renderItem(){
     return(
       this.state.items.map((item,i))=>
         <li key={i}> {item} </li> 
     )
   },
   render(){
      return(
        <ul>
          {this.renderItem()}
        </ul>
      )
   }
})

无法看到任何渲染,检查控制台,没有发现错误。

你有一个语法问题:

this.state.items.map((item,i))=>
                             ^

删除该右括号,并将其放在下一个右括号旁边:

return(
  this.state.items.map((item,i)=>
  <li key={i}> {item} </li> 
))

首先,你需要获得额外的RIF )在地图上的参数列表

this.state.items.map((item,i))=> to this.state.items.map((item,i)=>

其次你需要添加另一个)来关闭return语句

 var App = React.createClass({ getInitialState(){ return { items:[1,2,3] } }, renderItem(){ return( this.state.items.map((item,i)=> <li key={i}> {item} </li> ) ) }, render(){ return( <ul> {this.renderItem()} </ul> ) } }) ReactDOM.render(<App/>, document.getElementById('app')); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react-dom.min.js"></script> <div id="app"></div> 

试试这个,IMO这样更干净

var App = React.createClass({
   getInitialState(){
   return {
     items:[1,2,3]
   }
   },
   renderItem(item, index){
   return(
      <li key={index}> {item} </li> 
   )
   },
   render(){
      return(
      <ul>
        {this.state.items.map(this.renderItem, this)}
      </ul>
      )
   }
})
renderItem(){
  return(
   this.state.items.map((item,i)=> {
     return <li key={i}> {item} </li>;
   }
  )
},

问题出在.map ,你必须在{}中放置代码并return

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM