赞
踩
在最开始搭建选项卡的时候,我的js代码是这样的
- import React, { Component } from 'react'
- import './css/02-maizuo.css'
- export default class App extends Component {
- state = {
- list: [
- {
- id: 1,
- text: '电影'
- },
- {
- id: 2,
- text: '影院'
- }, {
- id: 3,
- text: '我的'
- },
-
- ],
- current: 0
- }
- render() {
- return (
- <div>
- <ul>
- {this.state.list.map((item, index) => {
- <li
- key={item.id}
- className={this.state.current === index ? 'active' : ''}
- onClick={() => this.handleClick(index)}
- >
- {item.text}
- </li>
- })}
- </ul>
- </div>
- )
- }
- handleClick(index) {
- console.log(index);
- this.setState({
- current: index
- })
- }
- }
有问题的部分:
终端有提示警告信息:
第一反应是这里不能使用map进行遍历数组,于是换成了forEach,但是foreach方法并不返回一个新的数组,而只是对原来的数组进行遍历。如果使用forEach遍历数组,此时没有返回任何JSX元素,因此<li></li>标签还是不会被渲染出来的。
所以,还是得使用map方法,用来返回新的数组,返回的结果包含每个元素的处理结果。针对终端的警告,是因为在箭头函数中使用了大括号 {} 来包裹 JSX,但是却没有显式的返回一个值,在React当中,当使用 {} 来包裹 JSX的时候,如果想返回一个值,这个时候需要显式的使用 return 语句。而如果将箭头函数的大括号 {} 替换成小括号 () ,这个时候,就不需要显式的使用return 语句了,也就是
问题不大,但是芝士又涨喽!~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。