我的编程空间,编程开发者的网络收藏夹
学习永远不晚

React项目经验总结及遇到的坑

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

React项目经验总结及遇到的坑

1、报错 xxx.map is not a function

错误原因:因为后端数据还没收到,数组是空的,而map方法不会对空数组检测,结果报错

解决:

拓展:Array.isArray(obj) 如果对象是数组,返回的是true,否则false

2、如何将后端返回的二进制流转换为base64格式的展示?

语法:

<img width="40" height="30" class="lazy" data-src=`data:image/jpg;base64,${xxx}`/>

xxx指的是:后端返回的图片的字段,如 logo、 galleryImage......

3、下载

1)直接window.open ( 请求的接口 )

这个会闪屏

2)也可以自己写一个点击事件进行下载

原理是动态创建a标签,设置href属性


handleDownFile = (event, name, format, api_url) => {
  event.preventDefault();
  event.stopPropagation();
  //开启loading 按钮置灰
  this.setState({
    loadingStatus: true,
    buttonDisabled: true,
  });
  fetch(api_url, {
    method: "get",
    // 下面两行可以不用要
    credentials: "include",
    headers: new Headers({
      "Content-Type": "application/json",
      // 'X-Auth-Token': User.getToken(),
    }),
  })
    .then((response) => {
    response.blob().then((blob) => {
      //关闭loading 按钮恢复正常
      let blobUrl = window.URL.createObjectURL(blob);
      const filename = name + `.${format}`; // 设置文件名称 eg: test.zip
      const aElement = document.createElement("a"); // 获取a标签元素
      document.body.appendChild(aElement);
      aElement.style.display = "none";
      aElement.href = blobUrl; //设置a标签路径
      aElement.download = filename;
      aElement.click();
      document.body.removeChild(aElement);
      this.setState({
        loadingStatus: false,
        buttonDisabled: false,
      });
    });
  })
    .catch((error) => {
    //关闭loading 按钮恢复正常
    this.setState({
      loadingStatus: false,
      buttonDisabled: false,
    });
  });
  };

4、父组件如何把值传给子组件?子组件又如何接收?

1)比如,我在父组件里面的方法我想传给子组件

_this是随便定义的,和子组件有关系,一会在子组件里面要写的名字

this.init 就是父组件里面传的init方法

2)子组件是这样接收的 this.props.xxx

这里的init就是父传过来init()

5、父组件如何获取子组件所有的state里面定义的值?

1)在父组件里面声明一个ref,是在父组件里面哈

2)绑定在子组件上面

3)然后就可以通过this.ref.current.state获取,在父组件里面

注意:所有的操作都是在父组件里面操作,子组件不需要做什么

6.antd+react 之layout左侧菜单点击时加背景色--高亮(适用于每一个项目)

需求: 我想点击产品管理,订单管理,信息管理能加蓝色背景,不是单纯的通过点击加背景色

解释说明:

首先我们从组件上面复制下来的左侧菜单长这样,defaultSelectedKeys是默认选中的菜单,一会我们会操作它,而且里面的数据写死的,我们不想这样,改为动态的渲染

落地代码:
如何动态渲染左侧菜单呢? 我们可以定义一个数据(这一步和实现背景色还没有关系)

然后循环:

效果就是:

 因为有一个属性是:defaultSelectedKeys,里面写的key为1 , 所以就是第一个高亮

落地代码

实现如何点击高亮呢?
(1)首先定义一个存放key的初始值,

(2)然后在这个钩子函数里面写逻辑代码,思路就是:取出当前的url,然后再和自己的path路径里面的url进行匹配,如果匹配成功,就取出当前key值,并且在setState里面修改state的值,然后绑定在默认值上面

注意:因为点击tab栏切换时URL变化,页面相当于刷新了,就会调用这个钩子函数

注意这里: 可以直接在Menu上面写 selectedKeys={this.state.defaultMenuKey},但是每次都要this.state.xxx
挺麻烦的,所以就解构一下

这样一个高亮效果就完成了

到此这篇关于React项目经验总结的文章就介绍到这了,更多相关React项目总结内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

React项目经验总结及遇到的坑

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

react项目引入antd框架方式及遇到的坑怎么解决

这篇文章主要介绍了react项目引入antd框架方式及遇到的坑怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react项目引入antd框架方式及遇到的坑怎么解决文章都会有所收获,下面我们一起来看看吧。r
2023-07-05

vue-cli脚手架创建项目遇到的坑及解决

这篇文章主要介绍了vue-cli脚手架创建项目遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-11

C#开发物流管理系统的项目经验总结

C# 开发物流管理系统的项目经验总结近年来,随着物流行业的快速发展,物流管理系统成为各企业不可或缺的重要工具。在这个背景下,我参与了一个C#开发的物流管理系统项目,并在项目过程中积累了一些经验。在本文中,我将总结这些经验,希望对其他开发人员
C#开发物流管理系统的项目经验总结
2023-11-03

C#开发智能监控系统的项目经验总结

C#开发智能监控系统的项目经验总结随着科技的不断进步和社会的发展,智能监控系统在各个领域的应用越来越广泛。作为一名C#开发工程师,我有幸参与了一项智能监控系统的开发项目。在这个过程中,我积累了一些宝贵的项目经验,下面我将对此进行总结。首先,
C#开发智能监控系统的项目经验总结
2023-11-02

C#开发新闻发布系统的项目经验总结

C#开发新闻发布系统的项目经验总结项目背景新闻发布系统是一种用于发布和管理新闻内容的软件系统。随着互联网的发展,新闻媒体越来越重视在线新闻的传播和发布,因此,开发一个高效、稳定的新闻发布系统对于新闻机构来说是非常重要的。本文将对C#开发新闻
C#开发新闻发布系统的项目经验总结
2023-11-02

C#开发智能门禁系统的项目经验总结

C#开发智能门禁系统的项目经验总结引言:随着科技的不断进步,智能门禁系统在如今的社会生活中扮演着非常重要的角色。智能门禁系统通过运用现代化的技术手段,实现了对出入人员的身份识别、权限控制、安全监控等功能。本文将围绕C#开发智能门禁系统的项目
C#开发智能门禁系统的项目经验总结
2023-11-02

C#开发智能安防系统的项目经验总结

随着社会的不断发展,人们对安全的关注度越来越高。而在如今这个信息时代,计算机技术与安全系统的结合也变得越来越紧密。C#是一种常用的编程语言,在安防系统的开发中也会被广泛使用。本文将围绕着C#开发智能安防系统的项目经验总结展开。一、智能安防系
C#开发智能安防系统的项目经验总结
2023-11-02

突破瓶颈:Go语言项目开发的经验总结

作为一种相对新兴的编程语言,Go语言在近年来的发展中受到了越来越多的关注。特别是在项目开发方面,Go语言有着优势,因为它比其他语言更适合开发高性能、并发、分布式的系统。但是,即使使用Go语言,也会遇到项目开发中的瓶颈和挑战,因此在本文中,我
突破瓶颈:Go语言项目开发的经验总结
2023-11-02

MySQL性能优化与索引设计的项目经验总结

MySQL是一种常用的关系型数据库管理系统,广泛应用于各种Web应用和企业级系统中。在开发和维护MySQL数据库时,性能优化和索引设计是非常关键的环节。本文将基于作者在项目中的经验总结MySQL性能优化和索引设计的一些实践方法和技巧。一、了
MySQL性能优化与索引设计的项目经验总结
2023-11-02

成功案例:用Go语言开发的项目经验总结

成功案例:用Go语言开发的项目经验总结引言:随着信息技术的不断进步,新的编程语言层出不穷。其中,Go语言因其简洁、高效和并发性能而备受开发者的喜爱。在过去的几年中,越来越多的项目选择使用Go语言进行开发。本文将总结一些成功的项目案例,并分享
成功案例:用Go语言开发的项目经验总结
2023-11-04

C#开发人事薪酬管理系统的项目经验总结

C#开发人事薪酬管理系统的项目经验总结项目背景人事薪酬管理是企业管理中非常重要的一个环节,它涉及到员工的薪资发放、考核奖惩、福利待遇等诸多方面。为了更高效地管理和处理这些人事薪酬事务,我参与了一个C#开发人事薪酬管理系统的项目。该系统旨在通
C#开发人事薪酬管理系统的项目经验总结
2023-11-02

MySQL数据库备份与灾备方案的项目经验总结

MySQL数据库备份与灾备方案的项目经验总结在项目中,数据库的备份和灾备方案是一项非常重要的工作内容。MySQL作为一种常用的关系型数据库管理系统,其备份和灾备方案的制定和实施是确保数据安全性和可用性的关键。在过去的项目实施中,我积累了一些
MySQL数据库备份与灾备方案的项目经验总结
2023-11-02

利用C#开发酒店管理系统的项目经验总结

随着现代社会的需求,酒店管理系统已经成为了市场上不可或缺的服务之一。利用计算机技术开发酒店管理系统,可以大大提高酒店管理效率,从而提高服务质量、满足客户需求、提高经济收益等方面得到好处。本文将从项目实际需求、技术选型、代码实现以及项目总结等
利用C#开发酒店管理系统的项目经验总结
2023-11-03

基于C#的旅游预订平台开发项目经验总结

随着互联网的发展,旅游业也迎来了新的变革。传统的旅行社模式已经不能满足现代人们的需求,因此在线旅游预订平台成为了目前旅游市场的主要渠道之一。本文将分享一个基于C#的旅游预订平台开发项目的经验总结。一、项目需求分析在项目启动前,我们需要先进行
基于C#的旅游预订平台开发项目经验总结
2023-11-03

利用C#开发在线购物平台的项目经验总结

在互联网时代,电子商务已经成为人们日常生活的重要组成部分。为了满足用户的需求,我最近参与了一个利用C#开发的在线购物平台的项目。通过这个项目的经验,我对于C#开发和在线购物平台有了更深入的理解和认识。首先,我要感谢团队成员的努力和合作。一个
利用C#开发在线购物平台的项目经验总结
2023-11-03

编程热搜

目录