热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

React-如何使用常规的for循环渲染多个按钮?

如何解决《React-如何使用常规的for循环渲染多个按钮?》经验,为你挑选了1个好方法。

抱歉,如果它非常基础,但是:在迭代中渲染多个按钮(0-9)时-btw map和for loop有什么区别?为什么map可以正常工作,所以for循环仅呈现第一个元素(0)?为什么我必须首先将按钮按入数组,然后将其返回(如其他示例所示)?我可以使用常规的for循环和渲染按钮,而不必将其推入Arary吗?谢谢!

 import React from 'react';

    const Keys = () => {        
       const renderKeys = () => {
         //works fine
          var arr = [1,2,3,4,5,6,7,8,9]
          return arr.map((val) => {
              return 
            })                 
        };

        const renderKeys = () => {       
              //does not work    
              for (var i=0; i<10; i++) {
               return 
            }
        };

        return (
            
{renderKeys()}
) };

Christopher .. 5

returnfor循环内调用时,它将停止执行循环。这就是为什么您只返回第一个按钮的原因。

但是,return在a内部调用.map()不会停止循环的迭代。相反,您可以使用return显式定义要在新数组中包含的内容。

请注意,.map()使用现有数组中的元素创建一个全新的数组。您可以随意使用任何元素,使其适合呈现JSX。

例:

const numbers = [1, 2, 3, 4, 5]
const numbersMultipledByTwo = numbers.map((number) => {
   return 
{ number * 2 }
})

从理论上讲,您可以使用for循环来实现相同的效果,但是这也需要第二个数组的帮助。

工作代码:

import React from "react";
import ReactDOM from "react-dom";

import "./styles.css";

class App extends React.Component{
  getButtOnsUsingMap= () => {
    const array = [1, 2, 3 ,4, 5]

    return array.map((number) => {
      return 
    })

  }

  getButtOnsUsingForLoop= (num) => {
    const array = []

    for(var i = 1; i <= num; i++){
      array.push()
    }

    return array
  }

  render(){
    return(
      

Using .map()

{this.getButtonsUsingMap()}

using for-loop

{this.getButtonsUsingForLoop(5)}
) } } const rootElement = document.getElementById("root"); ReactDOM.render(, rootElement);

在该getButtonsUsingForLoop 功能中,您可以看到有使其工作的更多明确要求。首先,我们需要满足论点。然后初始化一个新数组。然后为循环定义边界。迭代并将JSX推送到空数组。然后最后返回该数组。因此逻辑不是很简洁。

另一方面,a .map()本质上可以处理所有这些。只要您有一个预先存在的数组就可以迭代(99%的时间您将要处理某种状态或props-array。)

看到沙箱:https : //codesandbox.io/s/pensive-leftpad-lt5ml



1> Christopher ..:

returnfor循环内调用时,它将停止执行循环。这就是为什么您只返回第一个按钮的原因。

但是,return在a内部调用.map()不会停止循环的迭代。相反,您可以使用return显式定义要在新数组中包含的内容。

请注意,.map()使用现有数组中的元素创建一个全新的数组。您可以随意使用任何元素,使其适合呈现JSX。

例:

const numbers = [1, 2, 3, 4, 5]
const numbersMultipledByTwo = numbers.map((number) => {
   return 
{ number * 2 }
})

从理论上讲,您可以使用for循环来实现相同的效果,但是这也需要第二个数组的帮助。

工作代码:

import React from "react";
import ReactDOM from "react-dom";

import "./styles.css";

class App extends React.Component{
  getButtOnsUsingMap= () => {
    const array = [1, 2, 3 ,4, 5]

    return array.map((number) => {
      return 
    })

  }

  getButtOnsUsingForLoop= (num) => {
    const array = []

    for(var i = 1; i <= num; i++){
      array.push()
    }

    return array
  }

  render(){
    return(
      

Using .map()

{this.getButtonsUsingMap()}

using for-loop

{this.getButtonsUsingForLoop(5)}
) } } const rootElement = document.getElementById("root"); ReactDOM.render(, rootElement);

在该getButtonsUsingForLoop 功能中,您可以看到有使其工作的更多明确要求。首先,我们需要满足论点。然后初始化一个新数组。然后为循环定义边界。迭代并将JSX推送到空数组。然后最后返回该数组。因此逻辑不是很简洁。

另一方面,a .map()本质上可以处理所有这些。只要您有一个预先存在的数组就可以迭代(99%的时间您将要处理某种状态或props-array。)

看到沙箱:https : //codesandbox.io/s/pensive-leftpad-lt5ml


推荐阅读
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 随着前端技术的发展,越来越多的开发者开始使用react、vue等web框架,但很少有人深入理解这些框架的源码。然而,这些框架底层都是由原生的javascript构建而成。对于初学前端的人来说,可能会认为javascript很容易上手,但实际上只是因为它被高度封装了。与能够使用封装类的人相比,能够理解框架原理的人则处于另一个层面。本文将深入剖析jquery源码,探寻框架底层的原理,帮助读者更好地理解web框架的运行机制。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 详解react组件通讯方式(多种)
    这篇文章主要介绍了详解react组件通讯方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • 打开文件管理器_【教程】模组管理器3.1食用指南
    文编:byakko最近有部分小伙伴反应还不会使用unity模组管理器,现在我就给大家讲一下unity模组管理器——从下载到使用。完整视频版以下是无WiF ... [详细]
  • 本文详细介绍了C语言中的格式化字符串类型,包括浮点数、十六进制数字、p-计数法、十进制整数、小数形式、实数、有符号整数和输出字符串等。对于每种类型,都给出了详细的解释和示例。通过本文的学习,读者将对C语言中的格式化字符串类型有更深入的理解。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
author-avatar
用户0a8xoj91q0
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有