热门标签 | 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


推荐阅读
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 程序员如何优雅应对35岁职业转型?这里有深度解析
    本文探讨了程序员在职业生涯中如何通过不断学习和技能提升,优雅地应对35岁左右的职业转型挑战。我们将深入分析当前热门技术趋势,并提供实用的学习路径。 ... [详细]
  • ThinkPHP框架中处理JS和CSS缓存问题的解决方案
    本文探讨了在ThinkPHP框架中,当启用调试模式(APP_DEBUG)时,删除public文件夹中的CSS和JS文件后页面仍然显示旧样式的问题,并提供了一种有效的解决方法。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • JavaScript实现表格数据的实时筛选功能
    本文介绍如何使用JavaScript实现对表格数据的实时筛选,帮助开发者提高用户体验。通过简单的代码示例,展示如何根据用户输入的关键字动态过滤表格内容。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 前端开发:从底层到顶端的行业现象解析
    在编程领域,鄙视链现象屡见不鲜,从C语言到Java、.NET等,每个技术栈都有其独特地位。然而,前端开发者尽管常处于鄙视链底端,却在市场需求中备受青睐。本文深入探讨这一现象,并分析前端工程师如何在竞争激烈的市场中脱颖而出。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文介绍了如何使用 Python 的 Bokeh 库在图表上绘制菱形标记。Bokeh 是一个强大的交互式数据可视化工具,支持丰富的图形自定义选项。 ... [详细]
  • 本文介绍了一种有效的方法来检测硬盘上的视频文件是否损坏或存在缺帧问题。虽然一些常见的搜索引擎并未提供专门的工具,但通过使用FFmpeg等专业软件,可以全面验证各种视频格式的数据完整性,包括较为古老的AVI格式。 ... [详细]
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社区 版权所有