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

news/2024/6/3 4:24:44 标签: react.js, javascript, 前端, 前端框架

问题:

在最开始搭建选项卡的时候,我的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 语句了,也就是

 


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


http://www.niftyadmin.cn/n/5379844.html

相关文章

用于图像处理的Python顶级库 !!

文章目录 前言 1、OpenCV 2、Scikit-Image 3、Scipy 4、Python Image Library&#xff08;Pillow / PIL&#xff09; 5、Matplotlib 6、SimpleITK 7、Numpy 8、Mahotas 前言 正如IDC所指出的&#xff0c;数字信息将飙升至175ZB&#xff0c;而这些信息中的巨大一部分是图片。数…

Vue3.0(八):网络请求库axios

网络请求库axios axios官网 功能特点 在浏览器中发送 XMLHttpRequests请求在node.js中发送http请求支持Promise API拦截请求和响应转换请求和响应数据 axios请求方式 支持多种请求方式 axios(config) axios.request(config) axios.get(url[, config]) axios.delete(url[, c…

ubuntu22.04安装jenkins并配置

准备 更新系统 sudo apt update sudo apt upgrade环境准备 jdk 安装 sudo apt install openjdk-11-jdk验证 java -versiongit ubuntu配置git maven ubuntu配置maven 部署 添加 Jenkins 存储库 导入Jenkins存储库的GPG密钥 wget -q -O - https://pkg.jenkins.io/de…

将JWT令牌存储到浏览器中localStorage中,并且往页面请求头中添加token

将JWT令牌存储到浏览器中localStorage中 localStorage.setItem(token, response.data.data) 其中response.data.data是后端返回的数据为jwt字符串 往页面请求头中添加token 在vue中的main.js添加如下再带&#xff0c;axios便会拦截所有请求并且如果localStorage有token则会…

使用Apache ECharts同时绘制多个统计图表

目录 1、介绍 2、相关知识 3、代码 4、效果 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发、数据结构和算法&#xff0c;初步涉猎Python人工智能开发和前端开发。 …

JavaScript 进阶(下)

深浅拷贝 浅拷贝 首先浅拷贝和深拷贝只针对引用类型 浅拷贝&#xff1a;拷贝的是地址 常见方法&#xff1a; 拷贝对象&#xff1a;Object.assgin() / 展开运算符 {…obj} 拷贝对象拷贝数组&#xff1a;Array.prototype.concat() 或者 […arr] 如果是简单数据类型拷贝值&am…

【Webpack】处理 js 资源

处理 js 资源 Webpack 对 js 处理是有限的&#xff0c;只能编译 js 中 ES 模块化语法&#xff0c;不能编译其他语法&#xff0c;导致 js 不能在 IE 等浏览器运行&#xff0c;所以我们希望做一些兼容性处理。 其次开发中&#xff0c;团队对代码格式是有严格要求的&#xff0c;…

Windows10中用Docker优雅的拥有一个自己的Linux环境

使用windows的同学&#xff0c;想学习或者使用Linux环境时&#xff0c;通常会有Hyper-v,vmware workstation,virtualbox等虚拟机再安装Linux系统。 快使用Docker吧&#xff0c;彻底抛弃虚拟机 安装docker 请猛戳&#xff1a; Windows10环境下安装Docker - 技术圈 修改镜像 …