React项目升级遇到的问题复盘(2019-09-02)
老铁们,发没发现我换了个贼帅的头像,高端大气上档次,非洲大地我最凶!可把我自己牛逼坏了。

不扯啦不扯啦,抓紧进入今天的正题,从今天开始我会每天写一下每天工作的出现的问题,主要对这些问题出现的原因,以及对这些问题是怎么思考的,怎么在后续的工作中避免出现类似的问题,我的宗旨是在哪里跌倒就在哪里躺好,今天的主要问题还是来自于React项目的升级,我们一起来看一下,填填坑
问题:
1.React中父组件传递的函数和从redux中取到的函数的命名问题
2.React中获取数据的异步请求该注意的地方
3.对React版本进行降级导致的React.createContext()抛错问题
问题一的原因与思考:React中父组件传递的函数和从redux中取到的函数的命名问题
情景:将React中父组件传递过来的函数名和从redux中拿到的函数名写了相同的名字,导致了一系列的问题
思考:由于命名混淆,导致后续别的同学维护项目时需要花费大量的时间来看代码·熟悉代码,相似的命名容易对维护同学的思路造成影响
方案:可以将两者区分开来,比如父组件传递函数的时候给函数加一个_或者一个特殊的前缀,这样保证在以后项目被升级时,升级的同学可以迅速的找到对应的函数,以提高升级的效率
问题二的原因和思考: React中获取数据的异步请求该注意的地方
情景:B页面发送添加条目请求后通过跳转路由的方式跳转到了A页面(A页面显示所有条目),结果添加请求发送后,跳转到A页面A页面并没有实时的将刚添加的条目显示出来
思考:1.当看到这种情况出现我首先怀疑的是组件应该是接受到了新的数据未发生更新,
采取方案:保证返回新stroe,结果:失败
2.后发现请求接口是304,遂怀疑是接口一直没有拿到更新后的接口数据,
采取方案:接口附加时间戳,结果: 发现拿到的数据依旧是更新前的
3.采取方案:将跳转的方法延迟了两秒,结果:A页面正常
4.发现是由于B调用添加条目请求后直接跳转到了A页面,A页面获取所有条目的接口立即执行返回数据,而此时添加条目还并未进入所有条目当中
采取方案:将跳转方法扔到添加条目的回调中去,将并联执行的两个操作变为串联执行,即将异步变为同步 结果:A页面正常
问题三的原因和思考:对React版本进行降级导致的React.createContext()抛错问题
情景:由于误操作将React16.9.0版本替换为了React16.0.0,导致原本可以正常执行的项目抛错:React.createContext() is not a function
思考:查看后发现在React16.0.0中根本不存在这个方法,后经过查找发现,React.createContext()是在16.3.0版本之后才被加入进来的
方案:选择合适的Raect版本即可
此为每日复盘系列的第一篇,希望能一直坚持下去,实现自己的梦想

React项目升级遇到的问题复盘(2019-09-02)的更多相关文章
- React Native升级方法——升级到最新版本0.59
React Native最近有大动作,于2019年3月12日发布新版本0.59.主要有两点值得升级:支持React Hooks:升级了JavaScriptCore,使Android性能有大幅提升.据用 ...
- 如何快速把 Vue 项目升级到 webpack3
由于 webpack3升级后,新增了 Scope Hositing(作用域提升) 功能,据说是对 js的性能提升很大.因此,我们做了一个测试对比,就是 webpack3和 webpack1/2 的性能 ...
- 基于webpack的React项目搭建(一)
前言 工欲善其事,必先利其器.为了更好的学习React,我们先简要的把开发环境搭建起来.本文主要介绍使用webpack搭建React项目,如果你对React或es6的基础语法还不了解,建议先去学习学习 ...
- React项目中使用Mobx状态管理(二)
并上一节使用的是普通的数据状态管理,不过官方推荐使用装饰器模式,而在默认的react项目中是不支持装饰器的,需要手动启用. 官方参考 一.添加配置 官方提供了四种方法, 方法一.使用TypeScrip ...
- 【react npm】解决用npmstart启动别人的react项目的问题1:sha1-xxx checksum failed wanted sha1-xxx but got sha512-xxx. (10700 bytes)
1.npm是nodejs的包管理器,相当于php的composer,python的pip,用于安装各种包. 2.一般来说,别人拷给你的react项目不会带依赖包的,因为太大了,需要用npm命令自己安装 ...
- React 项目引入 Dva
背景 现在手上在做的 React 项目因为年代久远,用的 Redux,写代码的体验不太好,所以想升级一下引入 dva.以往使用 dva 都是使用 dva-cli 直接生成 dva 项目,或者在使用 a ...
- (转)react 项目构建
原文:https://segmentfault.com/a/1190000016342792 写在前面 每次构建react项目的时候都会配置一大堆东西,时间久了就会忘记怎么配置.为了方便自己记忆也为了 ...
- 搭建React项目环境【1】
1.安装NodeJS6.0以上自带npm依赖包管理工具 2.webstrom 2019.2 工具 1.在cmd输入node -v就可以看到node的当前版本 2.在输入node进入node环境 3.查 ...
- react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)
react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目.文中针对react.webpack.babel.react-route.redux.redu ...
随机推荐
- .NET开发框架(八)-服务器集群之网络负载平衡演示(视频)
(有声视频-服务器集群之负载平衡-NLB演示) 观看NLB视频的童鞋,都会继续观看IIS的负载平衡教程,点击>> 本文以[图文+视频],讲解Windows服务器集群的网络负载平衡NLB的作 ...
- Go语言圣经习题练习_1.4. GIF动画
练习 1.5: 修改前面的Lissajous程序里的调色板,由黑色改为绿色.我们可以用color.RGBA{0xRR, 0xGG, 0xBB, 0xff}来得到#RRGGBB这个色值,三个十六进制的字 ...
- Centos7 安装Homestead环境
问题1, ==> homestead-7: Waiting for machine to boot. This may take a few minutes... homestead-7: SS ...
- LeetCode 448. Find All Numbers Disappeared in an Array找到所有数组中消失的元素
题目 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能 ...
- kudu集群高可用搭建
首先咱得有KUDU安装包 这里就不提供直接下载地址了(因为有5G,我 的服务器网卡只有4M,你们下的很慢) 这里使用的是CDH版本 官方下载地址http://archive.cloudera.com/ ...
- TestNG在Eclipse中运行的几种方法
目录 1 在Eclipse Outline视图中,点右键run as TestNG Test (不推荐) 2 在Eclipse类编辑界面,直接点击右键run as TestNG Test 3 通过Te ...
- ios下,微信小程序scrollview组件中的fixed元素抖得和帕金森病人一样
问题现象 这个问题是最近在优化小程序代码时发现的. 在ios环境下,微信小程序的scrollview组件包裹着一个position:fixed的view. 当在scrollview组件上滑动时,这个v ...
- T-SQL 日期
--日期查询格式 ) --R:06/17/2011 ) --R:2011.06.17 ) --R:17/06/2011 ) --R:17.06.2011 ) --R:17-06-2011 ) --R: ...
- javaweb入门----servlet简介
servlet 上文已经了解了web服务器和http协议是怎么回事儿,并且也了解了浏览器与服务器之间的联系,现在要介绍一下服务器是如何处理来自客户端的请求的,这就是servlet. servlet:J ...
- 深入学习 Intellij IDEA 调试技巧
程序员的日常工作除了写代码之外,很大一部分时间将会在查找 BUG,解决问题.查找 BUG,离不开在 IDE 中调试代码.熟练的掌握调试技巧,可以帮助我们减少查找时间,快速定位问题. 在 IDEA 中调 ...