1.iconfont应用:

  a.正常用法如下

<span className='iconfont' > iconfont的代码,例如: </span>

  b.react不能动态渲染iconfont标签,需如下处理,icon为形参

<i dangerouslySetInnerHTML={{__html: icon}} className={'iconfont'} />

  c.引入项目中:需要在项目中复制iconfont的地址代码,类似如下的地址,官网生成

@font-face {
font-family: 'iconfont'; /* project id 413196 */
src: url('//at.alicdn.com/t/font_413196_97fora1hdl81if6r.eot');
src: url('//at.alicdn.com/t/font_413196_97fora1hdl81if6r.eot?#iefix') format('embedded-opentype'),
url('//at.alicdn.com/t/font_413196_97fora1hdl81if6r.woff') format('woff'),
url('//at.alicdn.com/t/font_413196_97fora1hdl81if6r.ttf') format('truetype'),
url('//at.alicdn.com/t/font_413196_97fora1hdl81if6r.svg#iconfont') format('svg');
}

2.排序方法

let dataList=["3","3","45"];
dataList.sort(function(a,b){
return a-b
})
升序方法

3.获取节点属性

需要给DOM节点增加ref属性

4.下拉加载更多数据事件

步骤:a.在滚动滚动div上增加ref属性

<div ref={data=>this.content=data} ></div>

   b.compoonentDidMount中监听滚动事件,并调用判断事件

componentDidMount() {   // 加载渲染完成
if (this.contentNode) {
this.contentNode.addEventListener('scroll',this.onScrollHandle.bind(this));
}
}

   c.判断滚动事件是否触发

//监听滚动条位置
onScrollHandle(event) {
const clientHeight = event.target.clientHeight;
const scrollHeight = event.target.scrollHeight;
const scrollTop = event.target.scrollTop;
const isBottom = (clientHeight + scrollTop === scrollHeight);
isBottom?setTimeout(this.lazy(),20000):"";
}

5.父组件向子组件传值的方式

父组件.js
  html:
    <子组件 parent={(data)=>this.parentEvent(data)} />
  js:
    parentEvent(data){
    //这里接收到的data为子组件传给父组件的
  } 子组件.js
  html:
    <div onClick={this.click.bind(this)}></div>
  js:
    click(){
    this.props.parent(data)//这里的data是传给父组件的
      }

6.字符串的基础操作

函数:split()
功能:使用一个指定的分隔符把一个字符串分割存储到数组
例子:
str=”jpg|bmp|gif|ico|png”;
arr=theString.split(”|”);
//arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组 函数:join()
功能:使用您选择的分隔符将一个数组合并为一个字符串
例子:
var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”);
var portableList=myList.join(”|”);
//结果是jpg|bmp|gif|ico|png 函数:substring()
功能:用于提取字符串中介于两个指定下标之间的字符
例子:
“ABCDEF”.substring(0,2) //结果为su 函数:indexOf()
功能:返回字符串中匹配子串的第一个字符的下标
"ABCDEF".indexOf("A") //结果为0
"ABCDEF".indexOf("BC") //结果为1 函数:reverse()
功能:用于颠倒数组中元素的顺序
“05.03.2018”.split(".").reverse().join(".") //结果为2018.03.05

7.正则验证

let reg=/判断格式/
reg.test(需要判断的内容)
返回个布尔值

8.antdUI组件

  a.DatePicker如果需要动态绑定数值的话,不能为空,浏览器会报错;需要对当前是否有值做判断,如果没值,直接赋值null;

  b.DatePicker下的RangePicker,没值的时候可以传空数组,可解决;

9.对象扩展和数组扩展

数组扩展,示例如下:

let arr1=[1,2,3,4]
let arr2=[a,b,c]
let newArr=[...arr1,...arr2]//[1,2,3,4,a,b,c]

对象扩展,示例如下:

let obj1={a:1,b:2,c:3}
let obj2={d:2,e:3,a:45}
Object.assign(obj1,obj2)//{a:45,b:2,c:3,d:2,e:3}

10.当字符串中有需要解析的html字符串时

let a="<span "+">"+"aaaaa"+"</span>";
<p dangerouslySetInnerHTML={{__html:a}}></p>  //p中包含span标签

航遇项目react踩坑的更多相关文章

  1. vue2项目,踩坑Jest单元测试

    目前的项目已经维护了挺久,由于客户要求,我们要为项目加上单元测试,挑选一番后选择了Jest(配置简便,开箱即用),下面记录了此次为项目添加Jest作为单元测试的经历. 安装Jest 1. 在项目目录下 ...

  2. 【React踩坑记一】React项目中禁用浏览器双击选中文字的功能

    常规项目,我们只需要给标签加一个onselectstart事件,return false就可以 例: <div onselectstart="return false;" & ...

  3. 【React踩坑记五】React项目中引入并使用react-ace代码编辑插件(自定义列表提示)

    最近有一个引入sql编辑器插件的需求,要求代码高亮显示,代码智能提示,以及支持自定义代码提示列表等功能.中途在自定义代码提示列表中由于没有相关demo,所以踩了一些坑,遂将其整理如下,以便日后查看. ...

  4. 【React踩坑记四】React项目中引入并使用js-xlsx上传插件(结合antdesign的上传组件)

    最近有一个前端上传并解析excel/csv表格数据的需求. 于是在github上找到一个14K star的前端解析插件 github传送门 官方也有,奈何实在太过于浅薄.于是做了以下整理,避免道友们少 ...

  5. 【React踩坑记六】create-react-app创建的react项目通过iP地址访问(实现局域网内访问)

    同项目组的小伙伴想用自己的电脑访问我电脑上开发阶段的create-react-app创建的react项目. 试过了了各种内网穿透工具ngrok以及localtunnel等. 奈何打开效率实在太过于龟速 ...

  6. 【React踩坑记三】React项目报错Can't perform a React state update on an unmounted component

    意思为:我们不能在组件销毁后设置state,防止出现内存泄漏的情况 分析出现问题的原因: 我这里在组件加载完成的钩子函数里调用了一个EventBus的异步方法,如果监听到异步方法,则会更新state中 ...

  7. 【React踩坑记二】react项目实现JS路由跳转

    这里使用的是4.31版本的react-router-dom "react-router-dom": "^4.3.1", 直接使用以下代码即可实现路由跳转 thi ...

  8. 【React踩坑记三】React项目报错Can't perform a React state update on an unmounted component

    意思为:我们不能在组件销毁后设置state,防止出现内存泄漏的情况 分析出现问题的原因: 我这里在组件加载完成的钩子函数里调用了一个EventBus的异步方法,如果监听到异步方法,则会更新state中 ...

  9. react踩坑笔记

    1.create-react-app中配置webpack // 方法一:将项目的配置文件抽取到项目中,即运行: npm run eject // 方法二:使用react-app-rewired 2.c ...

随机推荐

  1. 小强的HTML5移动开发之路(3)——HTML5与HTML4比较

    来自:http://blog.csdn.net/dawanganban/article/details/17652873 在前面介绍了HTML5的新特性,新标签的使用,智能表单设计,引入多媒体对象,C ...

  2. 集群通信组件Tribes之整体介绍

    接下来一系列文章会对集群通信框架tribes进行源码级别的分析,欢迎讨论. 把若干机器组合成一个集群,集群为了能协同工作,成员之间的通信是必不可少的,当然可以说这也是集群实现中重点需要解决的核心问题, ...

  3. Universal-Image-Loader完全解析--从源代码分析Universal-Image-Loader中的线程池

    一般来讲一个网络访问就需要App创建一个线程来执行,但是这也导致了当网络访问比较多的情况下,线程的数目可能积聚增多,虽然Android系统理论上说可以创建无数个线程,但是某一时间段,线程数的急剧增加可 ...

  4. 总结C语言在嵌入式开发中应用的知识点(文件数据的加密与解密)

    <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...

  5. 浅谈C之精华---指针

    今天是2016年的第一天,祝大家元旦快乐!哎,今天有点倒霉,代码写到一半,突然机子就没电了,幸好有保存,否则今天没有这篇日志的出现. 好了,今天以我个人的角度来深度剖析一下C语言中关于指针的用法以及注 ...

  6. 如何调整DOS窗口的宽高

    运行->cmd->dos窗口上沿点右键->默认值所选字体字体: 新宋体大小: 13窗口大小宽度: 100高度: 40屏幕缓冲区大小宽度: 100高度: 300 在这里还可以设置依他常 ...

  7. LeetCode之“动态规划”:Maximum Subarray

    题目链接 题目要求: Find the contiguous subarray within an array (containing at least one number) which has t ...

  8. OpenCV——颜色运算(二)

    #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <iostream> #include & ...

  9. OpenCV 1 图像分割--分水岭算法代码

    // watershed_test20140801.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" // // ch9_watershed ...

  10. myeclipse不编译

    错误: org.eclipse.core.internal.registry.configurationElementHandle cannot be cast to org.eclipse.jdt. ...