位置: IT常识 - 正文

React报错之map() is not a function(react错误处理)

编辑:rootadmin
React报错之map() is not a function

推荐整理分享React报错之map() is not a function(react错误处理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react useparams,react sourcemap,react中的map,react中的map,react map函数,react-bmap,react sourcemap,react sourcemap,内容如对您有帮助,希望把文章链接给更多的朋友!

当我们对一个不是数组的值调用map()方法时,就会产生"TypeError: map is not a function"错误。为了解决该错误,请将你调用map()方法的值记录在console.log上,并确保只对有效的数组调用map。

这里有个示例来展示错误是如何发生的。

const App = () => { const obj = {}; // ⛔️ Uncaught TypeError: map is not a function return ( <div> {obj.map(element => { return <h2>{element}</h2>; })} </div> );};export default App;

我们在一个对象上调用Array.map()方法,得到了错误反馈。

React报错之map() is not a function(react错误处理)

为了解决该错误,请console.log你调用map方法的值,确保它是一个有效的数组。

export default function App() { const arr = ['one', 'two', 'three']; return ( <div> {arr.map((element, index) => { return ( <div key={index}> <h2>{element}</h2> </div> ); })} </div> );}Array.isArray

你可以通过使用Array.isArray方法,来有条件地检查值是否为数组。

const App = () => { const obj = {}; return ( <div> {Array.isArray(obj) ? obj.map(element => { return <h2>{element}</h2>; }) : null} </div> );};export default App;

如果值为数组,则返回对其调用map方法的结果,否则返回null。这种方式不会得到错误,即使值不是一个数组。

如果值是从远程服务中获取,请确保它是你期望的类型,将其记录到控制台,并确保你在调用map方法之前将其解析为一个原生JavaScript数组。

Array.from

如果有一个类数组对象,在调用map方法之前你尝试转换为数组,可以使用Array.from()方法。

const App = () => {const set = new Set(['one', 'two', 'three']);return ( <div> {Array.from(set).map(element => { return ( <div key={element}> <h2>{element}</h2> </div> ); })} </div>);};export default App;

在调用map方法之前,我们将值转换为数组。这也适用于类数组的对象,比如调用getElementsByClassName方法返回的NodeList。

Object.keys

如果你尝试迭代遍历对象,使用Object.keys()方法获取对象的键组成的数组,在该数组上可以调用map()方法。

export default function App() { const employee = { id: 1, name: 'Alice', salary: 100, }; return ( <div> {/* 👇️ iterate object KEYS */} {Object.keys(employee).map((key) => { return ( <div key={key}> <h2> {key}: {employee[key]} </h2> <hr /> </div> ); })} <br /> <br /> <br /> {/* 👇️ iterate object VALUES */} {Object.values(employee).map((value, index) => { return ( <div key={index}> <h2>{value}</h2> <hr /> </div> ); })} </div> );}

我们使用Object.keys方法得到对象的键组成的数组。

const employee = { id: 1, name: 'Alice', salary: 100,};// 👇️ ['id', 'name', 'salary']console.log(Object.keys(employee));// 👇️ [1, 'Alice', 100]console.log(Object.values(employee));
本文链接地址:https://www.jiuchutong.com/zhishi/300523.html 转载请保留说明!

上一篇:基于imx8m plus开发板全体系开发教程4:Linux系统开发(imx6ul开源项目)

下一篇:AI眼中的世界 ——人工智能绘画入门(关于眼中的世界的作文)

  • 无线充电盒和充电盒有什么区别(无线充电盒和充电盒)

    无线充电盒和充电盒有什么区别(无线充电盒和充电盒)

  • 荣耀30pro取消锁屏壁纸的步骤是什么(荣耀30手机锁)

    荣耀30pro取消锁屏壁纸的步骤是什么(荣耀30手机锁)

  • 华为nova5z需要贴镜头膜吗(华为nova5z贴膜)

    华为nova5z需要贴镜头膜吗(华为nova5z贴膜)

  • 京东退货红包返还吗(京东退货用的红包怎么返还)

    京东退货红包返还吗(京东退货用的红包怎么返还)

  • 为什么手机屏幕突然失灵(为什么手机屏幕失灵点不了)

    为什么手机屏幕突然失灵(为什么手机屏幕失灵点不了)

  • 苹果微信输入栏字体变小(苹果手机微信输入框大小调整)

    苹果微信输入栏字体变小(苹果手机微信输入框大小调整)

  • 淘宝买多少东西才能有三个心(淘宝买多少东西淘气值500)

    淘宝买多少东西才能有三个心(淘宝买多少东西淘气值500)

  • 索尼4800万和三星6400万区别(索尼4800万和三星一亿像素)

    索尼4800万和三星6400万区别(索尼4800万和三星一亿像素)

  • ios13.5怎样(Ios13.5怎样降级)

    ios13.5怎样(Ios13.5怎样降级)

  • 快手扣点多少(快手扣点多少钱一个月)

    快手扣点多少(快手扣点多少钱一个月)

  • 网络operator是什么意思(network operators)

    网络operator是什么意思(network operators)

  • 官换机是二手机吗(官换机二手机比国行便宜多少)

    官换机是二手机吗(官换机二手机比国行便宜多少)

  • ipad腾讯会议共享屏幕播放视频没声音(ipad腾讯会议共享ppt)

    ipad腾讯会议共享屏幕播放视频没声音(ipad腾讯会议共享ppt)

  • word怎样移动文字段落(word怎样移动文件)

    word怎样移动文字段落(word怎样移动文件)

  • 苹果原装线支持多少瓦(苹果原装线可以配快充头吗)

    苹果原装线支持多少瓦(苹果原装线可以配快充头吗)

  • vivoy93有深色模式吗(vivoy3深色模式)

    vivoy93有深色模式吗(vivoy3深色模式)

  • 苹果11是否是全网通(苹果11是全面屏么)

    苹果11是否是全网通(苹果11是全面屏么)

  • 抖音可以屏蔽某个人吗(抖音可以屏蔽某个人不看我作品吗)

    抖音可以屏蔽某个人吗(抖音可以屏蔽某个人不看我作品吗)

  • 苹果11短信发不出去(苹果11短信发不出去尚未发送怎么解决)

    苹果11短信发不出去(苹果11短信发不出去尚未发送怎么解决)

  • iphone 11 pro 和11 pro max区别(iphone11pro和11promax摄像头区别)

    iphone 11 pro 和11 pro max区别(iphone11pro和11promax摄像头区别)

  • 苹果手机相册怎么加密(苹果手机相册怎么调整照片顺序)

    苹果手机相册怎么加密(苹果手机相册怎么调整照片顺序)

  • 老年机打电话无法连接(老年机打电话无法连接是什么意思)

    老年机打电话无法连接(老年机打电话无法连接是什么意思)

  • 锂电池放久了会坏吗(锂电池放久了会漏液吗)

    锂电池放久了会坏吗(锂电池放久了会漏液吗)

  • 苹果系统和安卓系统的区别(苹果系统和安卓系统王者荣耀互通)

    苹果系统和安卓系统的区别(苹果系统和安卓系统王者荣耀互通)

  • 手机怎么查看我的保单(手机怎么查看我的ip地址)

    手机怎么查看我的保单(手机怎么查看我的ip地址)

  • Mac打印机常见故障解决办法(mac打印机状态暂停怎么处理)

    Mac打印机常见故障解决办法(mac打印机状态暂停怎么处理)

  • css关于文本溢出(css单行文本溢出隐藏)

    css关于文本溢出(css单行文本溢出隐藏)

  • 采购无发票怎么处理
  • 国外进口原材料会计处理
  • 发票上的密码区有什么用
  • 辅导期增值税一般纳税人申报材料
  • 商品流通企业应将当期已销商品的进价转入当期费用
  • 长期待摊费用进项税可以一次性抵扣吗?
  • 应收票据周转率高
  • 支票存根联要带去银行吗
  • 非生产企业主营业务成本
  • 代付其他公司货款会计分录
  • 利润分配从哪里取数
  • 小规模纳税人可以收13%的专票吗?
  • 所得税汇算清缴调整项目
  • 一般纳税人的增值税应纳税额等于
  • 所得税预缴资产怎么算
  • 企业管理可以开什么明细发票
  • 托收承付结算方式
  • 集团内部企业之间借款利息增值税
  • 房屋拆迁过渡费由哪个部门发
  • 计算应纳税所得额时可以扣除的项目有
  • 上市公司现金分红怎么派发
  • 装修工程款如何记账
  • 原材料退库怎么做凭证
  • 公司给客户报销费用可以吗
  • 无偿赠送的货物需要缴纳印花税吗
  • 分批供货付款方式
  • 纳税人购进农产品取得
  • php中header的用法
  • php初学者用什么软件
  • 交易性金融资产包括哪些项目
  • 用盈余公积弥补以前年度亏损
  • token过期处理
  • 减免税款账务处理
  • 加拿大猞猁雪兔
  • 新版本idea怎么创建javaweb
  • linux扫描命令
  • 应收应付核销规则及常见问题
  • php怎么修改当前用户的密码
  • 边际贡献总额计算公式边际贡献率
  • 党建工作经费使用流程
  • 耕地占用税如何计算
  • 融资租赁的种类
  • 个体工商户免费开票额度
  • linux mysql 安装与操作
  • 外币账户的设置在哪里
  • 应交税金科目的核算
  • 企业所得税汇算清缴会计分录
  • 购买加油卡走哪个平台好
  • 食堂购电饭锅账务处理
  • 公司过账的款项怎么入账
  • 设计服务内容是什么
  • 注销时,其他应付款有余额,怎么冲减
  • 利息支出税前扣除时点
  • 房地产企业销售现房是否预缴增值税
  • 购买农产品进行销售要交税吗
  • 普通发票作废如何恢复
  • 整个期间影响损耗的因素
  • 5000元固定资产一次性计提折旧
  • 安装mysql5.7虚拟机教程
  • xp系统重启后自动还原怎么办
  • linux系统中的用户分为哪几类
  • win7声音方案存在哪里
  • mac安全设置在哪里
  • 电脑系统垃圾
  • 苹果电脑Mac系统版本所对应的数字
  • win8系统字体大小设置
  • 基于jquery的框架有哪些
  • Jquery ajax 同步阻塞引起的UI线程阻塞问题
  • linux命令shell脚本
  • qt搭建opencv
  • js中单例模式
  • webpack vue-loader
  • unity GetComponentsInChildren
  • ThreadPool.RegisterWaitForSingleObject 设置等待超时事件
  • 在jquery中fadein
  • 浙江国地税申报网
  • 所得税汇总纳税分配表
  • 内蒙地税个人所得税标准
  • 一般贸易和非一切贸易
  • 安徽省建筑施工企业排名
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设