当前位置:   article > 正文

react使用Map方法遍历列表不显示的问题

react使用Map方法遍历列表不显示的问题

问题:

在最开始搭建选项卡的时候,我的js代码是这样的

  1. import React, { Component } from 'react'
  2. import './css/02-maizuo.css'
  3. export default class App extends Component {
  4. state = {
  5. list: [
  6. {
  7. id: 1,
  8. text: '电影'
  9. },
  10. {
  11. id: 2,
  12. text: '影院'
  13. }, {
  14. id: 3,
  15. text: '我的'
  16. },
  17. ],
  18. current: 0
  19. }
  20. render() {
  21. return (
  22. <div>
  23. <ul>
  24. {this.state.list.map((item, index) => {
  25. <li
  26. key={item.id}
  27. className={this.state.current === index ? 'active' : ''}
  28. onClick={() => this.handleClick(index)}
  29. >
  30. {item.text}
  31. </li>
  32. })}
  33. </ul>
  34. </div>
  35. )
  36. }
  37. handleClick(index) {
  38. console.log(index);
  39. this.setState({
  40. current: index
  41. })
  42. }
  43. }

有问题的部分:

终端有提示警告信息:

解决办法

 第一反应是这里不能使用map进行遍历数组,于是换成了forEach,但是foreach方法并不返回一个新的数组,而只是对原来的数组进行遍历。如果使用forEach遍历数组,此时没有返回任何JSX元素,因此<li></li>标签还是不会被渲染出来的。

所以,还是得使用map方法,用来返回新的数组,返回的结果包含每个元素的处理结果。针对终端的警告,是因为在箭头函数中使用了大括号 {} 来包裹 JSX,但是却没有显式的返回一个值,在React当中,当使用 {}  来包裹 JSX的时候,如果想返回一个值,这个时候需要显式的使用 return 语句。而如果将箭头函数的大括号  {} 替换成小括号 () ,这个时候,就不需要显式的使用return 语句了,也就是

 


问题不大,但是芝士又涨喽!~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/108884
推荐阅读
相关标签
  

闽ICP备14008679号